Exemplo n.º 1
0
		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));
		}
Exemplo n.º 2
0
		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));
		}