public async Task <AppUser> AddSystemUser
        (
            AppKey appKey,
            string machineName,
            IHashedPassword password,
            DateTimeOffset timeAdded
        )
        {
            var user = await Add
                       (
                AppUserName.SystemUser(appKey, machineName),
                password,
                new PersonName($"{appKey.Name.DisplayText.Replace(" ", "")} {appKey.Type.DisplayText.Replace(" ", "")} {machineName}"),
                new EmailAddress(""),
                timeAdded
                       );

            var app = await factory.Apps().App(appKey);

            var role = await app.Role(AppRoleName.System);

            await user.AddRole(role);

            return(user);
        }
Beispiel #2
0
        public async Task <AppUser> Verify(AppUserName userName, IHashedPassword hashedPassword)
        {
            var user = await factory.Users().User(userName);

            if (!user.Exists())
            {
                throw new UserNotFoundException(userName.DisplayText);
            }
            if (!user.IsPasswordCorrect(hashedPassword))
            {
                throw new PasswordIncorrectException(userName.DisplayText);
            }
            return(user);
        }
        public async Task <AppUser> Add
        (
            AppUserName userName,
            IHashedPassword password,
            PersonName name,
            EmailAddress email,
            DateTimeOffset timeAdded
        )
        {
            var newUser = new AppUserRecord
            {
                UserName  = userName.Value,
                Password  = password.Value(),
                Name      = name.Value,
                Email     = email.Value,
                TimeAdded = timeAdded
            };
            await factory.DB.Users.Create(newUser);

            return(factory.User(newUser));
        }
Beispiel #4
0
 public Task ChangePassword(IHashedPassword password)
 => factory.DB.Users.Update(record, u => u.Password = password.Value());
Beispiel #5
0
 public bool IsPasswordCorrect(IHashedPassword hashedPassword) =>
 hashedPassword.Equals(record.Password);
 public Task <AppUser> Add
 (
     AppUserName userName,
     IHashedPassword password,
     DateTimeOffset timeAdded
 ) => Add(userName, password, new PersonName(""), new EmailAddress(""), timeAdded);