Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}