Exemplo n.º 1
0
        public async Task <UserDto> ApiRegister([FromBody] UserDto userInfo)
        {
            // if no users, the first one made is always admin
            if (userService.Get().Count() == 0)
            {
                userInfo.Role = "Admin";
            }
            else
            {
                userInfo.Role = "Normal";
            }

            LoginDto smallerDto = new LoginDto()
            {
                UserName = userInfo.Name,
                Password = userInfo.PasswordOrHash
            };
            CreatedLoginDto preregisterInfo = loginService.RegisterOrUpdate(smallerDto); // this is just hashing the password and should always succeed

            var result = userService.Create(userInfo.CloneWithNewInfo(preregisterInfo));

            // register implies Login(user) if no one is currently logged in

            if (ApiGetCurrentUser() == null)
            {
                await ApiLogin(smallerDto);
            }

            return(result);
        }
Exemplo n.º 2
0
        public override UserDto ApiCreate([FromBody] UserDto dto)
        {
            CreatedLoginDto hashedPwdInfo = loginService.RegisterOrUpdate(new LoginDto()
            {
                UserName = dto.Name, Password = dto.PasswordOrHash
            });

            return(base.ApiCreate(dto.CloneWithNewInfo(hashedPwdInfo)));
        }
Exemplo n.º 3
0
 public UserDto CloneWithNewInfo(CreatedLoginDto loginInfo)
 {
     return(new UserDto()
     {
         Id = this.Id,
         Role = this.Role,
         Name = loginInfo.UserName,
         FriendlyName = this.FriendlyName,
         CalendarVisibleToOthers = this.CalendarVisibleToOthers,
         Happenings = this.Happenings,
         PasswordOrHash = loginInfo.Hash
     });
 }
Exemplo n.º 4
0
        // special override for ApiUpdate to bake in the password changing parts
        public override UserDto ApiUpdate([FromBody] UserDto dto)
        {
            if (String.IsNullOrEmpty(dto.PasswordOrHash))
            {
                return(base.ApiUpdate(dto)); // if no password is being changed we don't have to go through the extra stuff below
            }

            CreatedLoginDto hashedPwdInfo = loginService.RegisterOrUpdate(new LoginDto()
            {
                UserName = dto.Name, Password = dto.PasswordOrHash
            });

            return(base.ApiUpdate(dto.CloneWithNewInfo(hashedPwdInfo)));
        }
Exemplo n.º 5
0
        public override UserDto ApiUpdate([FromBody] UserDto dto)
        {
            if (dto.PasswordOrHash == null || dto.PasswordOrHash.Trim().Length == 0)
            {
                return(base.ApiUpdate(dto)); // we can't do this as easily for mass, but we can shortcut here to avoid hashing non-password relevant updates
            }

            CreatedLoginDto hashedPwdInfo = loginService.RegisterOrUpdate(new LoginDto()
            {
                UserName = dto.Name, Password = dto.PasswordOrHash
            });

            return(base.ApiUpdate(dto.CloneWithNewInfo(hashedPwdInfo)));
        }