Exemplo n.º 1
0
        protected override async Task <bool> CheckUserPermissions(long userId, long[] roleIds, string[] codes)
        {
            bool result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto()
            {
                RoleIds = roleIds, Permissions = codes
            });

            return(result);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CheckPermissions([FromQuery] RolePermissionsCheckInputDto inputDto)
        {
            bool isexists = await _roleService.ExistPermissions(inputDto);

            if (isexists)
            {
                return(new OkResult());
            }
            else
            {
                return(new NotFoundObjectResult(new ErrorModel(ErrorCode.NotFound, "没有权限")));
            }
        }
Exemplo n.º 3
0
        protected override async Task <bool> CheckUserPermissions(long userId, long[] roleIds, string[] codes)
        {
            var result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto()
            {
                RoleIds = roleIds, Permissions = codes
            });

            if (result.IsSuccess)
            {
                return(result.Content);
            }

            return(false);
        }
Exemplo n.º 4
0
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement)
        {
            if (!context.User.Identity.IsAuthenticated)
            {
                context.Fail();
                return;
            }

            var roles = context.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role).Value;

            if (string.IsNullOrWhiteSpace(roles))
            {
                context.Fail();
                return;
            }

            var roleIds = roles.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => long.Parse(x));

            if (roleIds.Contains(1))
            {
                context.Succeed(requirement);
                return;
            }
            else
            {
                var attribute = (context.Resource as RouteEndpoint).Metadata.GetMetadata <PermissionAttribute>();

                var result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto()
                {
                    RoleIds = roleIds.ToArray(), Permissions = attribute.Codes
                });

                if (result)
                {
                    context.Succeed(requirement);
                    return;
                }
            }
            context.Fail();
            return;
        }