using Newtonsoft.Json; using Volo.Abp.Users; using Yi.Framework.Rbac.Domain.Shared.Consts; using Yi.Framework.Rbac.Domain.Shared.Model; namespace Yi.Framework.Rbac.Domain.Extensions { public static class CurrestUserExtensions { /// /// 获取用户权限codes /// /// /// public static List GetPermissions(this ICurrentUser currentUser) { return currentUser.FindClaims(TokenTypeConst.Permission).Select(x => x.Value).ToList(); } /// /// 获取用户权限岗位id /// /// /// public static Guid? GetDeptId(this ICurrentUser currentUser) { var deptIdOrNull = currentUser.FindClaims(TokenTypeConst.DeptId).Select(x => x.Value).FirstOrDefault(); return deptIdOrNull is null ? null : Guid.Parse(deptIdOrNull); } public static List? GetRoleInfo(this ICurrentUser currentUser) { var roleOrNull = currentUser.FindClaims(TokenTypeConst.RoleInfo).Select(x => x.Value).FirstOrDefault(); return roleOrNull is null ? null : JsonConvert.DeserializeObject>(roleOrNull); } public static bool IsRefreshToken(this ICurrentUser currentUser) { var refreshOrNull = currentUser.FindClaims(TokenTypeConst.Refresh).Select(x => x.Value).FirstOrDefault(); return refreshOrNull is null ? false : bool.Parse(refreshOrNull); } } }