1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2025-05-02 03:34:06 +02:00
Minecraft-Phantom-Panel/Web/Phantom.Web.Services/Authorization/PermissionManager.cs
2023-12-05 14:27:55 +01:00

23 lines
749 B
C#

using System.Security.Claims;
using Phantom.Common.Data.Web.Users;
using Phantom.Web.Services.Authentication;
using UserInfo = Phantom.Web.Services.Authentication.UserInfo;
namespace Phantom.Web.Services.Authorization;
public sealed class PermissionManager {
private readonly UserSessionManager sessionManager;
public PermissionManager(UserSessionManager sessionManager) {
this.sessionManager = sessionManager;
}
public PermissionSet GetPermissions(ClaimsPrincipal user) {
return UserInfo.TryGetGuid(user) is {} guid && sessionManager.Find(guid) is {} info ? info.Permissions : PermissionSet.None;
}
public bool CheckPermission(ClaimsPrincipal user, Permission permission) {
return GetPermissions(user).Check(permission);
}
}