public AddUserResponse AddUser(AddUserRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.UserDetail, "UserDetail"); var userDetail = request.UserDetail; var settings = new AuthenticationSettings(); // create new user var userInfo = new UserInfo(userDetail.UserName, userDetail.DisplayName, userDetail.EmailAddress, userDetail.ValidFrom, userDetail.ValidUntil); var user = User.CreateNewUser(userInfo, settings.DefaultTemporaryPassword); // copy other info such as authority groups from request var assembler = new UserAssembler(); assembler.UpdateUser(user, request.UserDetail, PersistenceContext); // save PersistenceContext.Lock(user, DirtyState.New); PersistenceContext.SynchState(); return new AddUserResponse(user.GetRef(), assembler.GetUserSummary(user)); }
public AddUserResponse AddUser(AddUserRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.UserDetail, "UserDetail"); var userDetail = request.UserDetail; var accountType = (userDetail.AccountType != null) ? EnumUtils.GetEnumValue<UserAccountType>(userDetail.AccountType) : UserAccountType.U; // default account type is U if not specified // is the current user authorized to create user accounts of this type? EnsureCurrentUserAuthorizedToManage(accountType); if(!UserName.IsLegalUserName(userDetail.UserName)) throw new RequestValidationException("Illegal account name."); // create new user var userInfo = new UserInfo( accountType, userDetail.UserName, userDetail.DisplayName, userDetail.EmailAddress, userDetail.ValidFrom, userDetail.ValidUntil); var password = GetNewAccountPassword(accountType, request.Password); var user = User.CreateNewUser(userInfo, password, new HashedSet<AuthorityGroup>()); // copy other info such as authority groups from request var assembler = new UserAssembler(); assembler.UpdateUser(user, request.UserDetail, PersistenceContext); // save PersistenceContext.Lock(user, DirtyState.New); PersistenceContext.SynchState(); return new AddUserResponse(user.GetRef(), assembler.GetUserSummary(user)); }