permissions.gno
3.62 Kb ยท 107 lines
1package boards2
2
3import "gno.land/r/gnoland/boards2/v1/permissions"
4
5func createBasicBoardPermissions(owner address) *permissions.Permissions {
6 perms := permissions.New(
7 permissions.UseSingleUserRole(),
8 permissions.WithSuperRole(permissions.RoleOwner),
9 )
10 perms.AddRole(
11 permissions.RoleAdmin,
12 permissions.PermissionBoardRename,
13 permissions.PermissionBoardFlaggingUpdate,
14 permissions.PermissionMemberInvite,
15 permissions.PermissionMemberInviteRevoke,
16 permissions.PermissionMemberRemove,
17 permissions.PermissionThreadCreate,
18 permissions.PermissionThreadEdit,
19 permissions.PermissionThreadDelete,
20 permissions.PermissionThreadRepost,
21 permissions.PermissionThreadFlag,
22 permissions.PermissionThreadFreeze,
23 permissions.PermissionReplyCreate,
24 permissions.PermissionReplyDelete,
25 permissions.PermissionReplyFlag,
26 permissions.PermissionRoleChange,
27 permissions.PermissionUserBan,
28 permissions.PermissionUserUnban,
29 )
30 perms.AddRole(
31 permissions.RoleModerator,
32 permissions.PermissionThreadCreate,
33 permissions.PermissionThreadEdit,
34 permissions.PermissionThreadRepost,
35 permissions.PermissionThreadFlag,
36 permissions.PermissionReplyCreate,
37 permissions.PermissionReplyFlag,
38 permissions.PermissionUserBan,
39 permissions.PermissionUserUnban,
40 )
41 perms.AddRole(
42 permissions.RoleGuest,
43 permissions.PermissionThreadCreate,
44 permissions.PermissionThreadRepost,
45 permissions.PermissionReplyCreate,
46 )
47 perms.SetUserRoles(cross, owner, permissions.RoleOwner)
48 perms.ValidateFunc(permissions.PermissionBoardRename, validateBasicBoardRename)
49 perms.ValidateFunc(permissions.PermissionMemberInvite, validateBasicMemberInvite)
50 perms.ValidateFunc(permissions.PermissionRoleChange, validateBasicRoleChange)
51 return perms
52}
53
54func createOpenBoardPermissions(owner address) *permissions.Permissions {
55 perms := permissions.New(
56 permissions.UseSingleUserRole(),
57 permissions.WithSuperRole(permissions.RoleOwner),
58 )
59 perms.SetPublicPermissions(
60 permissions.PermissionThreadCreate,
61 permissions.PermissionReplyCreate,
62 )
63 perms.AddRole(
64 permissions.RoleAdmin,
65 permissions.PermissionBoardRename,
66 permissions.PermissionBoardFlaggingUpdate,
67 permissions.PermissionMemberInvite,
68 permissions.PermissionMemberInviteRevoke,
69 permissions.PermissionMemberRemove,
70 permissions.PermissionThreadCreate,
71 permissions.PermissionThreadEdit,
72 permissions.PermissionThreadDelete,
73 permissions.PermissionThreadRepost,
74 permissions.PermissionThreadFlag,
75 permissions.PermissionThreadFreeze,
76 permissions.PermissionReplyCreate,
77 permissions.PermissionReplyDelete,
78 permissions.PermissionReplyFlag,
79 permissions.PermissionRoleChange,
80 permissions.PermissionUserBan,
81 permissions.PermissionUserUnban,
82 )
83 perms.AddRole(
84 permissions.RoleModerator,
85 permissions.PermissionThreadCreate,
86 permissions.PermissionThreadEdit,
87 permissions.PermissionThreadRepost,
88 permissions.PermissionThreadFlag,
89 permissions.PermissionReplyCreate,
90 permissions.PermissionReplyFlag,
91 permissions.PermissionUserBan,
92 permissions.PermissionUserUnban,
93 )
94 perms.AddRole(
95 permissions.RoleGuest,
96 permissions.PermissionThreadCreate,
97 permissions.PermissionThreadRepost,
98 permissions.PermissionReplyCreate,
99 )
100 perms.SetUserRoles(cross, owner, permissions.RoleOwner)
101 perms.ValidateFunc(permissions.PermissionBoardRename, validateOpenBoardRename)
102 perms.ValidateFunc(permissions.PermissionMemberInvite, validateOpenMemberInvite)
103 perms.ValidateFunc(permissions.PermissionRoleChange, validateOpenRoleChange)
104 perms.ValidateFunc(permissions.PermissionThreadCreate, validateOpenThreadCreate)
105 perms.ValidateFunc(permissions.PermissionReplyCreate, validateOpenReplyCreate)
106 return perms
107}