permissions.gno
2.88 Kb ยท 85 lines
1package boards2
2
3import (
4 "gno.land/p/gnoland/boards"
5)
6
7const (
8 RoleOwner boards.Role = "owner"
9 RoleAdmin = "admin"
10 RoleModerator = "moderator"
11 RoleGuest = "guest"
12)
13
14const (
15 PermissionBoardCreate boards.Permission = "board:create"
16 PermissionBoardFlaggingUpdate = "board:flagging-update"
17 PermissionBoardFreeze = "board:freeze"
18 PermissionBoardRename = "board:rename"
19 PermissionMemberInvite = "member:invite"
20 PermissionMemberInviteRevoke = "member:invite-remove"
21 PermissionMemberRemove = "member:remove"
22 PermissionPermissionsUpdate = "permissions:update"
23 PermissionRealmHelp = "realm:help"
24 PermissionRealmLock = "realm:lock"
25 PermissionRealmNotice = "realm:notice"
26 PermissionReplyCreate = "reply:create"
27 PermissionReplyDelete = "reply:delete"
28 PermissionReplyFlag = "reply:flag"
29 PermissionRoleChange = "role:change"
30 PermissionThreadCreate = "thread:create"
31 PermissionThreadDelete = "thread:delete"
32 PermissionThreadEdit = "thread:edit"
33 PermissionThreadFlag = "thread:flag"
34 PermissionThreadFreeze = "thread:freeze"
35 PermissionThreadRepost = "thread:repost"
36 PermissionUserBan = "user:ban"
37 PermissionUserUnban = "user:unban"
38)
39
40func createBasicBoardPermissions(owner address) *BasicPermissions {
41 perms := NewBasicPermissions()
42 perms.SetSuperRole(RoleOwner)
43 perms.AddRole(
44 RoleAdmin,
45 PermissionBoardRename,
46 PermissionBoardFlaggingUpdate,
47 PermissionMemberInvite,
48 PermissionMemberInviteRevoke,
49 PermissionMemberRemove,
50 PermissionThreadCreate,
51 PermissionThreadEdit,
52 PermissionThreadDelete,
53 PermissionThreadRepost,
54 PermissionThreadFlag,
55 PermissionThreadFreeze,
56 PermissionReplyCreate,
57 PermissionReplyDelete,
58 PermissionReplyFlag,
59 PermissionRoleChange,
60 PermissionUserBan,
61 PermissionUserUnban,
62 )
63 perms.AddRole(
64 RoleModerator,
65 PermissionThreadCreate,
66 PermissionThreadEdit,
67 PermissionThreadRepost,
68 PermissionThreadFlag,
69 PermissionReplyCreate,
70 PermissionReplyFlag,
71 PermissionUserBan,
72 PermissionUserUnban,
73 )
74 perms.AddRole(
75 RoleGuest,
76 PermissionThreadCreate,
77 PermissionThreadRepost,
78 PermissionReplyCreate,
79 )
80 perms.SetUserRoles(cross, owner, RoleOwner)
81 perms.ValidateFunc(PermissionBoardRename, validateBoardRename)
82 perms.ValidateFunc(PermissionMemberInvite, validateMemberInvite)
83 perms.ValidateFunc(PermissionRoleChange, validateRoleChange)
84 return perms
85}