using HopFrame.Database.Models; namespace HopFrame.Security.Services; public interface IPermissionService { Task HasPermission(string permission, Guid user); Task> GetPermissionGroups(); Task GetPermissionGroup(string name); Task> GetUserPermissionGroups(User user); Task RemoveGroupFromUser(User user, PermissionGroup group); Task CreatePermissionGroup(string name, bool isDefault = false, string description = null); Task DeletePermissionGroup(PermissionGroup group); Task GetPermission(string name, IPermissionOwner owner); /// /// permission system:
/// - "*" -> all rights
/// - "group.[name]" -> group member
/// - "[namespace].[name]" -> single permission
/// - "[namespace].*" -> all permissions in the namespace ///
/// /// /// Task AddPermission(IPermissionOwner owner, string permission); Task RemovePermission(Permission permission); Task GetFullPermissions(string user); }