예제 #1
0
        public async Task <List <string> > GetPermissionsAsync(long userId, IEnumerable <string> permissions, string validationVersion = null)
        {
            var userValidateInfo = await _cacheService.GetUserValidateInfoFromCacheAsync(userId);

            if (userValidateInfo.RoleIds.IsNullOrWhiteSpace())
            {
                return(default);
예제 #2
0
        public async Task <AppSrvResult> UpdatePasswordAsync(long id, UserChangePwdDto input)
        {
            var user = await _cacheService.GetUserValidateInfoFromCacheAsync(id);

            if (user == null)
            {
                return(Problem(HttpStatusCode.NotFound, "用户不存在,参数信息不完整"));
            }

            var md5OldPwdString = HashHelper.GetHashedString(HashType.MD5, input.OldPassword, user.Salt);

            if (!md5OldPwdString.EqualsIgnoreCase(user.Password))
            {
                return(Problem(HttpStatusCode.BadRequest, "旧密码输入错误"));
            }

            var newPwdString = HashHelper.GetHashedString(HashType.MD5, input.Password, user.Salt);

            await _userRepository.UpdateAsync(new SysUser { Id = user.Id, Password = newPwdString }, UpdatingProps <SysUser>(x => x.Password));

            return(AppSrvResult());
        }
예제 #3
0
        public async Task <RoleTreeDto> GetRoleTreeListByUserIdAsync(long userId)
        {
            RoleTreeDto result = null;
            IEnumerable <ZTreeNodeDto <long, dynamic> > treeNodes = null;

            var user = await _cacheService.GetUserValidateInfoFromCacheAsync(userId);

            if (user == null)
            {
                return(null);
            }

            var roles = await _cacheService.GetAllRolesFromCacheAsync();

            var roleIds = user.RoleIds?.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => long.Parse(x)) ?? new List <long>();

            if (roles.Any())
            {
                treeNodes = roles.Select(x => new ZTreeNodeDto <long, dynamic>
                {
                    Id      = x.Id,
                    PID     = x.Pid.HasValue ? x.Pid.Value : 0,
                    Name    = x.Name,
                    Open    = x.Pid.HasValue && x.Pid.Value > 0 ? false : true,
                    Checked = roleIds.Contains(x.Id)
                });

                result = new RoleTreeDto
                {
                    TreeData = treeNodes.Select(x => new Node <long>
                    {
                        Id      = x.Id,
                        PID     = x.PID,
                        Name    = x.Name,
                        Checked = x.Checked
                    }),
                    CheckedIds = treeNodes.Where(x => x.Checked).Select(x => x.Id)
                };
            }

            return(result);
        }
예제 #4
0
 public async Task <UserValidateDto> GetUserValidateInfoAsync(long id)
 => await _cacheService.GetUserValidateInfoFromCacheAsync(id);