Esempio n. 1
0
        public async Task <LoginUser> Validate(string name, string pwd)
        {
            var invalidAdm = string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(pwd) || name != _userName ||
                             pwd != _password;

            // return Task.FromResult(!invalid);
            if (!invalidAdm)
            {
                return(new LoginUser {
                    Id = name, Adm = true
                });
            }

            var user = await _usersService.All().FirstOrDefaultAsync(u =>
                                                                     u.Status != 0 && u.Id == name && u.Password == PwdEncryptor.Encrypt(pwd));

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

            return(new LoginUser
            {
                Id = user.Id,
                Email = user.Email,
                Adm = false,
                Authorised = user.Authorised != 0 && user.AuthorisionExpired > DateTime.Now
            });
        }
Esempio n. 2
0
        public override async Task <Reply> UpdateName(UpdateNameRequest request, ServerCallContext context)
        {
            var reply = new Reply();

            if (!PwdEncryptor.ValidateUserName(request.NewName))
            {
                reply.Error = Error.InvalidArguments;
                return(reply);
            }

            var user = await _loginUserService.GetUser(context.GetHttpContext());

            if (user == null || user.Adm)
            {
                reply.Error = Error.InvalidOperation;
                return(reply);
            }

            var userEntity = await _usersService.All().FirstOrDefaultAsync(u => u.Id == user.Id);

            if (userEntity == null)
            {
                reply.Error = Error.InvalidOperation;
                return(reply);
            }

            if (userEntity.Id == request.NewName)
            {
                return(reply);
            }

            var existed = await _usersService.All().FirstOrDefaultAsync(u => u.Id == request.NewName);

            if (existed != null)
            {
                reply.Error = Error.InvalidOperation;
                return(reply);
            }

            userEntity.Id = request.NewName;
            await _usersService.Update(userEntity);

            user.Id = request.NewName;
            await _loginUserService.SetUser(context.GetHttpContext(), user);

            return(reply);
        }
Esempio n. 3
0
        public override async Task <UsersReply> GetAll(GetAllRequest request, ServerCallContext context)
        {
            var reply = new UsersReply();
            var user  = await _userService.GetUser(context.GetHttpContext());

            if (user == null)
            {
                reply.Error = Error.NeedLogin;
                return(reply);
            }

            if (!user.HasWritePermission())
            {
                reply.Error = Error.NoPermission;
                return(reply);
            }

            var users = _service.All();

            if (!string.IsNullOrWhiteSpace(request.Filter))
            {
                users = users.Where(u => u.Id.Contains(request.Filter, StringComparison.CurrentCultureIgnoreCase));
            }

            users = users.OrderByDescending(u => u.Status).ThenBy(u => u.Id);
            if (request.Skip > 0 || request.Take > 0)
            {
                reply.Total = await users.CountAsync();
            }

            if (request.Skip > 0)
            {
                users = users.Skip(request.Skip);
            }

            if (request.Take > 0)
            {
                users = users.Take(request.Take);
            }

            reply.Users.AddRange(await users
                                 .Select(Selector)
                                 .ToArrayAsync());
            return(reply);
        }