only lower id roles can be modfified, add new hub endpoints

This commit is contained in:
2026-05-01 14:28:07 +02:00
parent dc097ad52a
commit 7c4f326410
4 changed files with 227 additions and 55 deletions
+35 -3
View File
@@ -157,6 +157,7 @@ const (
PermissionMuteUser
PermissionUserAddRole
PermissionUserRemoveRole
PermissionUserSelfRoleRemove
// Role permissions
PermissionCreateRole
@@ -165,9 +166,6 @@ const (
PermissionSetRoleColor
PermissionSetRolePermissions
PermissionSelfRoleRemove
PermissionOnlySelfRoleRemove
// Channel permissions
PermissionAddChannel
PermissionRemoveChannel
@@ -178,6 +176,40 @@ const (
PermissionSetChannelPermittedReadHistoryRoles
)
var permissionRegistry = map[string]Permissions{
"set_hub_name": PermissionSetHubName,
"set_hub_icon": PermissionSetHubIcon,
"set_hub_bg": PermissionSetHubBg,
"set_hub_color": PermissionSetHubColor,
"remove_hub": PermissionRemoveHub,
"set_user_color_allowed": PermissionSetUserColorAllowed,
"invite_user": PermissionInviteUser,
"remove_user": PermissionRemoveUser,
"rename_user": PermissionRenameUser,
"self_rename": PermissionSelfRename,
"mute_user": PermissionMuteUser,
"user_add_role": PermissionUserAddRole,
"user_remove_role": PermissionUserRemoveRole,
"create_role": PermissionCreateRole,
"remove_role": PermissionRemoveRole,
"set_role_name": PermissionSetRoleName,
"set_role_color": PermissionSetRoleColor,
"set_role_permissions": PermissionSetRolePermissions,
"self_role_remove": PermissionUserSelfRoleRemove,
"add_channel": PermissionAddChannel,
"remove_channel": PermissionRemoveChannel,
"set_channel_name": PermissionSetChannelName,
"set_channel_icon": PermissionSetChannelIcon,
"set_channel_permitted_visible": PermissionSetChannelPermittedVisibleRoles,
"set_channel_permitted_send": PermissionSetChannelPermittedSendMessageRoles,
"set_channel_permitted_read": PermissionSetChannelPermittedReadHistoryRoles,
}
func PermissionLookup(permission string) (Permissions, bool) {
p, ok := permissionRegistry[permission]
return p, ok
}
func (p *Permissions) Grant(permissions Permissions) {
*p |= permissions
}