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)));
        }
Ejemplo n.º 2
0
        public UpdateUserResponse UpdateUser(UpdateUserRequest request)
        {
            var user = FindUserByName(request.UserDetail.UserName);

            EnsureCurrentUserAuthorizedToManage(user.AccountType);

            // update user account info
            var assembler = new UserAssembler();

            assembler.UpdateUser(user, request.UserDetail, PersistenceContext);

            // for user accounts, reset password if requested
            if (request.UserDetail.ResetPassword)
            {
                if (user.AccountType != UserAccountType.U)
                {
                    throw new RequestValidationException(SR.MessageAccountTypeDoesNotSupportPasswordReset);
                }

                var settings = new AuthenticationSettings();
                user.ResetPassword(settings.DefaultTemporaryPassword);
            }

            // for system accounts, update the password if specified
            if (!string.IsNullOrEmpty(request.Password) && user.AccountType == UserAccountType.S)
            {
                PasswordPolicy.CheckPasswordCandidate(user.AccountType, request.Password, new AuthenticationSettings());
                user.ChangePassword(request.Password, null);
            }

            PersistenceContext.SynchState();

            return(new UpdateUserResponse(assembler.GetUserSummary(user)));
        }
        public UpdateUserResponse UpdateUser(UpdateUserRequest request)
        {
            var user = FindUserByName(request.UserDetail.UserName);

            // update user account info
            var assembler = new UserAssembler();

            assembler.UpdateUser(user, request.UserDetail, PersistenceContext);

            // reset password if requested
            if (request.UserDetail.ResetPassword)
            {
                var settings = new AuthenticationSettings();
                user.ResetPassword(settings.DefaultTemporaryPassword);
            }

            PersistenceContext.SynchState();

            return(new UpdateUserResponse(assembler.GetUserSummary(user)));
        }
Ejemplo n.º 4
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)));
        }
Ejemplo n.º 5
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));
		}
Ejemplo n.º 6
0
		public UpdateUserResponse UpdateUser(UpdateUserRequest request)
		{
			var user = FindUserByName(request.UserDetail.UserName);
			EnsureCurrentUserAuthorizedToManage(user.AccountType);

			// update user account info
			var assembler = new UserAssembler();
			assembler.UpdateUser(user, request.UserDetail, PersistenceContext);

			// for user accounts, reset password if requested
			if (request.UserDetail.ResetPassword)
			{
				if(user.AccountType != UserAccountType.U)
					throw new RequestValidationException(SR.MessageAccountTypeDoesNotSupportPasswordReset);

				var settings = new AuthenticationSettings();
				user.ResetPassword(settings.DefaultTemporaryPassword);
			}

			// for system accounts, update the password if specified
			if(!string.IsNullOrEmpty(request.Password) && user.AccountType == UserAccountType.S)
			{
				PasswordPolicy.CheckPasswordCandidate(request.Password, new AuthenticationSettings());
				user.ChangePassword(request.Password, null);
			}

			PersistenceContext.SynchState();

			return new UpdateUserResponse(assembler.GetUserSummary(user));
		}
Ejemplo n.º 7
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));
		}
Ejemplo n.º 8
0
		public UpdateUserResponse UpdateUser(UpdateUserRequest request)
		{
			var user = FindUserByName(request.UserDetail.UserName);

			// update user account info
			var assembler = new UserAssembler();
			assembler.UpdateUser(user, request.UserDetail, PersistenceContext);

			// reset password if requested
			if (request.UserDetail.ResetPassword)
			{
				var settings = new AuthenticationSettings();
				user.ResetPassword(settings.DefaultTemporaryPassword);

			}

			PersistenceContext.SynchState();

			return new UpdateUserResponse(assembler.GetUserSummary(user));
		}