コード例 #1
0
        public async Task <HasPermissionResponseDTO> HasPermission(HasPermissionRequestDTO request)
        {
            HasPermissionResponseDTO response = new HasPermissionResponseDTO();

            if (string.IsNullOrEmpty(request.ClientCode) || string.IsNullOrEmpty(request.ClientPassword) || string.IsNullOrEmpty(request.ControllerRoute) || request.ApplicationId < 1)
            {
                throw new BusinessException(ResponseCode.ValidataionError);
            }


            var app = uow.Application.GetApplicationByClientCode(request.RequestInfo.ApplicationId);

            if (app == null)
            {
                response.HasPermission = false;
                return(response);
            }
            var user = await uow.User.GetAsync(x => x.UserName == request.RequestInfo.ClientCode && x.UserType == UserType.Application);

            if (user == null)
            {
                response.HasPermission = false;
                return(response);
            }

            var userApp = await uow.UserApplication.GetAsync(x => x.UserId == user.Id && x.ApplicationId == app.Id);

            if (userApp == null)
            {
                response.HasPermission = false;
                return(response);
            }


            if (!String.IsNullOrEmpty(request.RequestInfo.ClientPassword) && !String.IsNullOrEmpty(user.PasswordSalt) && HashHelper.GetDecryptedString(user.Password, user.PasswordSalt) != request.RequestInfo.ClientPassword)
            {
                response.HasPermission = false;
                return(response);
            }


            var userPermission = uow.UserRole.HasPermission(user.Id, request.ControllerRoute);

            if (!userPermission)
            {
                response.HasPermission = false;
                return(response);
            }


            response.HasPermission = true;
            return(response);
        }
コード例 #2
0
 public Task <HasPermissionResponseDTO> HasPermission(HasPermissionRequestDTO request)
 {
     return(AuthenticationService.HasPermission(request));
 }