Interface IPermissionService
- Namespace
- Shard.Server.Modules.Permissions
- Assembly
- Shard.Server.Modules.dll
Stores and resolves permissions for users (by UUID), groups (with inheritance) and ops. Provided to the service registry so the command system and modules can check and grant permissions. Mirrors the upstream permission provider/module split, collapsed into one service for now.
public interface IPermissionService
Properties
ActiveProvider
The provider with the highest priority. This is the provider that will be used for permission modifications.
PermissionProvider ActiveProvider { get; }
Property Value
Methods
AddUserToGroup(Guid, string)
Add a user to a group
bool AddUserToGroup(Guid uuid, string group)
Parameters
Returns
- bool
true if the user was added to the group; otherwise, false.
GetGroupPermissions(string)
Gets all explicitly assigned permissions for a group.
IReadOnlyDictionary<string, bool> GetGroupPermissions(string group)
Parameters
groupstringThe group to get permissions for
Returns
- IReadOnlyDictionary<string, bool>
A read-only dictionary mapping permission nodes to their granted or denied state.
GetUserGroups(Guid)
Gets the groups currently assigned to a user.
IReadOnlyList<string> GetUserGroups(Guid uuid)
Parameters
uuidGuidThe UUID of the user
Returns
- IReadOnlyList<string>
A read-only list of group names.
GetUserPermissions(Guid)
Gets all explicitly assigned permissions for a user.
IReadOnlyDictionary<string, bool> GetUserPermissions(Guid uuid)
Parameters
uuidGuidThe UUID of the user
Returns
- IReadOnlyDictionary<string, bool>
A read-only dictionary mapping permission nodes to their granted or denied state.
HasPermission(Guid, string, bool)
Determines whether a user has a specific permission node or not. Highest priority provider -> Lowest Priority Provider. User permissions are checked before group-inherited permissions.
bool HasPermission(Guid uuid, string node, bool def = false)
Parameters
uuidGuidThe UUID of the user to check
nodestringThe permission node to check
defboolThe default value to return if the user does not have the permission
Returns
RegisterProvider(PermissionProvider)
Registers a permission provider.
void RegisterProvider(PermissionProvider provider)
Parameters
providerPermissionProviderThe provider to register.
RemoveGroupPermission(string, string)
Removes an explicitly assigned permission from a group
void RemoveGroupPermission(string group, string node)
Parameters
RemoveUserFromGroup(Guid, string)
Removes a user from a group
bool RemoveUserFromGroup(Guid uuid, string group)
Parameters
Returns
- bool
true if the user was removed from the group; otherwise, false.
RemoveUserPermission(Guid, string)
Removes an explicitly assigned permission
void RemoveUserPermission(Guid uuid, string node)
Parameters
SetGroupPermission(string, string, bool)
Sets a permission for a group
void SetGroupPermission(string group, string node, bool value)
Parameters
groupstringThe group to set the permission for
nodestringThe permission node to set
valueboolThe value to set the permission to
SetUserGroups(Guid, IEnumerable<string>)
Replaces the group assigned to a user.
void SetUserGroups(Guid uuid, IEnumerable<string> groups)
Parameters
uuidGuidThe UUID of the user
groupsIEnumerable<string>The groups the user should belong to
SetUserPermission(Guid, string, bool)
Set or update a permission for a user
void SetUserPermission(Guid uuid, string node, bool value)
Parameters
uuidGuidThe UUID of the user
nodestringThe permission node to set
valueboolThe value to set the permission to
UnregisterProvider(PermissionProvider)
Unregisters a permission provider.
bool UnregisterProvider(PermissionProvider provider)
Parameters
providerPermissionProviderThe provider to unregister.
Returns
- bool
true if the provider was unregistered; otherwise, false.