namespace Nuuru.Server.Auth { public static class Permissions { public const string ClaimType = "permission"; public const string DenyClaimType = "permission.deny"; public static class Moderation { // Moderation claims [PermissionMetadata("Trash posts (move to trash)", PermissionCategory.Moderation, 10)] public const string TrashPost = "moderation.trash_post"; [PermissionMetadata("Delete comments", PermissionCategory.Moderation, 20)] public const string DeleteComment = "moderation.delete_comment"; [PermissionMetadata("Edit post tags", PermissionCategory.Moderation, 30)] // This user can lock those tags too public const string EditTags = "moderation.edit_tags"; [PermissionMetadata("Approve or reject posts", PermissionCategory.Moderation, 35)] public const string ApprovePost = "moderation.approve_post"; [PermissionMetadata("Ban users", PermissionCategory.Moderation, 40)] public const string BanUser = "moderation.ban_user"; [PermissionMetadata("Ban IP addresses. Notably distinct from View IPs, you can ban cloaks here.", PermissionCategory.Moderation, 42)] public const string BanIp = "moderation.ban_ip"; [PermissionMetadata("Review ban appeals", PermissionCategory.Moderation, 45)] public const string ReviewBanAppeals = "moderation.review_ban_appeals"; [PermissionMetadata("View reports", PermissionCategory.Moderation, 50)] public const string ViewReports = "moderation.view_reports"; [PermissionMetadata("View audit log", PermissionCategory.Moderation, 60)] public const string ViewAuditLog = "moderation.view_audit_log"; [PermissionMetadata("View raw IP addresses", PermissionCategory.Admin, 61)] public const string ViewIps = "moderation.view_ips"; [PermissionMetadata("Look up IPs on comments and forum posts (cloaked unless View IPs is also granted)", PermissionCategory.Moderation, 62)] public const string LookupIps = "moderation.lookup_ips"; [PermissionMetadata("Suppress history entries", PermissionCategory.Moderation, 65)] public const string SuppressHistory = "moderation.suppress_history"; [PermissionMetadata("Lock comments on posts", PermissionCategory.Moderation, 67)] public const string LockComments = "moderation.lock_comments"; [PermissionMetadata("Feature posts on gallery sidebar", PermissionCategory.Moderation, 68)] public const string FeaturePost = "moderation.feature_post"; [PermissionMetadata("Set post rating", PermissionCategory.Moderation, 70)] public const string SetRating = "moderation.set_rating"; [PermissionMetadata("Set post category", PermissionCategory.Moderation, 75)] public const string SetCategory = "moderation.set_category"; [PermissionMetadata("Set post source", PermissionCategory.Moderation, 80)] public const string SetSource = "moderation.set_source"; [PermissionMetadata("Edit post descriptions", PermissionCategory.Moderation, 85)] public const string EditDescription = "moderation.edit_description"; [PermissionMetadata("See moderator guidelines", PermissionCategory.Moderation, 90)] public const string SeeGuidelines = "moderation.see_guidelines"; [PermissionMetadata("View integrity assessment IDs", PermissionCategory.Moderation, 95)] public const string ViewIntegrityAssessments = "moderation.view_integrity_assessments"; [PermissionMetadata("View integrity browser hashes", PermissionCategory.Moderation, 100)] public const string ViewIntegrityBrowserHashes = "moderation.view_integrity_browser_hashes"; } public static class Admin { // Admin claims [PermissionMetadata("Manage users", PermissionCategory.Admin, 10)] public const string ManageUsers = "admin.manage_users"; [PermissionMetadata("Manage permissions (create and edit roles)", PermissionCategory.Admin, 20)] public const string ManagePermissions = "admin.manage_permissions"; [PermissionMetadata("Manage system settings", PermissionCategory.Admin, 30)] public const string SystemSettings = "admin.system_settings"; [PermissionMetadata("Send announcements", PermissionCategory.Admin, 40)] public const string SendAnnouncements = "admin.send_announcements"; [PermissionMetadata("Bulk operations (tags and posts)", PermissionCategory.Admin, 55)] public const string BulkOperations = "admin.bulk_operations"; [PermissionMetadata("Delete posts from trash", PermissionCategory.Admin, 50)] public const string DeletePost = "admin.delete_post"; [PermissionMetadata("View trash bin", PermissionCategory.Admin, 60)] public const string ViewTrash = "admin.view_trash"; [PermissionMetadata("Nuke user accounts (permanently delete user and all content)", PermissionCategory.Admin, 90)] public const string NukeUser = "admin.nuke_user"; [PermissionMetadata("Trigger emergency site shutdown (cannot be undone via UI)", PermissionCategory.Admin, 100)] public const string Panic = "admin.panic"; [PermissionMetadata("Manage forum categories", PermissionCategory.Admin, 110)] public const string ManageCategories = "admin.manage_categories"; } public static class User { // User claims [PermissionMetadata("Upload posts", PermissionCategory.User, 10)] public const string UploadPost = "user.upload_post"; [PermissionMetadata("Upload posts anonymously", PermissionCategory.User, 12)] public const string UploadAnonymously = "user.upload_anonymously"; [PermissionMetadata("Posts are automatically approved", PermissionCategory.User, 15)] public const string AutoApprove = "user.auto_approve"; [PermissionMetadata("Comment on posts", PermissionCategory.User, 20)] public const string Comment = "user.comment"; [PermissionMetadata("Comment on posts anonymously", PermissionCategory.User, 22)] public const string CommentAnonymously = "user.comment_anonymously"; [PermissionMetadata("Edit own status or bio", PermissionCategory.User, 25)] public const string EditBio = "user.edit_bio"; [PermissionMetadata("Edit own content", PermissionCategory.User, 30)] public const string EditOwnContent = "user.edit_own_content"; [PermissionMetadata("Delete own content", PermissionCategory.User, 40)] public const string DeleteOwnContent = "user.delete_own_content"; [PermissionMetadata("Edit post tags", PermissionCategory.User, 30)] public const string EditTags = "user.edit_tags"; [PermissionMetadata("Set post rating", PermissionCategory.User, 35)] public const string SetRating = "user.set_rating"; [PermissionMetadata("Set post category", PermissionCategory.User, 37)] public const string SetCategory = "user.set_category"; [PermissionMetadata("Set post source", PermissionCategory.User, 40)] public const string SetSource = "user.set_source"; [PermissionMetadata("Edit own post descriptions", PermissionCategory.User, 45)] public const string EditDescription = "user.edit_description"; [PermissionMetadata("Vote on posts", PermissionCategory.User, 50)] public const string Vote = "user.vote"; [PermissionMetadata("Favorite posts", PermissionCategory.User, 60)] public const string Favorite = "user.favorite"; [PermissionMetadata("Report content", PermissionCategory.User, 70)] public const string CreateReport = "user.create_report"; [PermissionMetadata("React to content", PermissionCategory.User, 75)] public const string React = "user.react"; [PermissionMetadata("Bypass integrity checks", PermissionCategory.User, 80)] public const string BypassIntegrity = "user.bypass_integrity"; [PermissionMetadata("Feature thread on profile", PermissionCategory.User, 120)] public const string FeatureThread = "user.feature_thread"; } public static class Forum { // User permissions [PermissionMetadata("Create forum threads", PermissionCategory.User, 50)] public const string CreateThread = "forum.create_thread"; [PermissionMetadata("Reply to forum threads", PermissionCategory.User, 60)] public const string Reply = "forum.reply"; // Moderation permissions [PermissionMetadata("Pin forum threads", PermissionCategory.Moderation, 70)] public const string PinThread = "forum.pin_thread"; [PermissionMetadata("Lock forum threads", PermissionCategory.Moderation, 80)] public const string LockThread = "forum.lock_thread"; [PermissionMetadata("Delete forum posts", PermissionCategory.Moderation, 90)] public const string DeletePost = "forum.delete_post"; [PermissionMetadata("Delete forum threads", PermissionCategory.Moderation, 100)] public const string DeleteThread = "forum.delete_thread"; [PermissionMetadata("Move forum threads", PermissionCategory.Moderation, 110)] public const string MoveThread = "forum.move_thread"; [PermissionMetadata("Upload forum attachments", PermissionCategory.User, 65)] public const string UploadAttachment = "forum.upload_attachment"; } public static class Messaging { [PermissionMetadata("Send private messages", PermissionCategory.User, 80)] public const string SendMessage = "messaging.send_message"; [PermissionMetadata("Create group conversations", PermissionCategory.User, 90)] public const string CreateGroupConversation = "messaging.create_group"; [PermissionMetadata("Lock conversations", PermissionCategory.Moderation, 100)] public const string LockConversation = "messaging.lock_conversation"; [PermissionMetadata("Delete conversations", PermissionCategory.Moderation, 110)] public const string DeleteConversation = "messaging.delete_conversation"; [PermissionMetadata("Add conversation participants", PermissionCategory.Moderation, 120)] public const string AddParticipant = "messaging.add_participant"; [PermissionMetadata("Remove conversation participants", PermissionCategory.Moderation, 130)] public const string RemoveParticipant = "messaging.remove_participant"; } } }