Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}