Esempio n. 1
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionAuthorizationRequirement requirement)
        {
            if (context.User.IsInRole("SuperAdmin"))
            {
                context.Succeed(requirement);
                return(Task.CompletedTask);
            }

            var userId = context.User.Claims.FirstOrDefault(p => p.Type == JwtClaimTypes.Subject)?.Value;

            if (userId != null && _userStore.CheckPermission(userId, requirement.Name))
            {
                context.Succeed(requirement);
            }
            else
            {
                context.Fail();
            }
            return(Task.CompletedTask);
        }