예제 #1
0
		public void TestInit()
		{
			UserFinder finder = new UserFinder(TestServerInfo.SPTestServerAddr + "/sites/dev");

			Assert.IsNotNull(finder.AllUsers);
			Assert.IsNotNull(finder.SiteRoles);
		}
예제 #2
0
 public UnitOfWorkTest()
 {
     _cnxFactory = new ConnectionTransactionFactory();
     _unitOfWork = new UnitOfWork(_cnxFactory);
     UnitOfWorkFactory.GetDefault = () => _unitOfWork;
     _userWriter = new UserWriter(_cnxFactory);
     _userFinder = new UserFinder(_cnxFactory);
 }
예제 #3
0
		public void TestFindRole()
		{
			UserFinder finder = new UserFinder(TestServerInfo.SPTestServerAddr + "/sites/dev");

			List<SPItemInfo> rolesList = new List<SPItemInfo>();
			finder.FindRole("Full Control", ref rolesList);

			Assert.IsNotNull(rolesList);
			Assert.AreEqual(1, rolesList.Count);
			Assert.AreEqual("full control", rolesList[0].Name.ToLower());
			Assert.AreEqual("has full control.", rolesList[0].Description.ToLower());
		}
예제 #4
0
		public void TestFindUser()
		{
			UserFinder finder = new UserFinder(TestServerInfo.SPTestServerAddr + "/sites/dev");

			Dictionary<string, SPUserInfo> usersDict = new Dictionary<string, SPUserInfo>();
			finder.FindUser("lnpair", ref usersDict);

			Assert.IsNotNull(usersDict);
			List<SPUserInfo> usersList = new List<SPUserInfo>(usersDict.Values);

			Assert.AreEqual(1, usersList.Count);
			Assert.AreEqual("wsdev\\lnpair", usersList[0].LoginName.ToLower());
		}
예제 #5
0
        public IEnumerator <UserRoleAclAceCombination> GetEnumerator()
        {
            var users = UserFinder.FindUsers();
            var acls  = AccessControlListFinder.FindAccessControlLists();

            foreach (var user in users)
            {
                //To.ConsoleLine.e (() => user);
                foreach (var role in user.Roles)
                {
                    //To.ConsoleLine.s ("\t").e (() => role);
                    foreach (var acl in acls)
                    {
                        //To.ConsoleLine.s ("\t\t").e (() => acl);
                        foreach (var ace in acl.AccessControlEntries)
                        {
                            //To.ConsoleLine.s ("\t\t\t").e (() => ace);
                            yield return(new UserRoleAclAceCombination(role, ace));
                        }
                    }
                }
            }
        }
        public void AddPokemonToUserFavorites_ReturnsPokemonAlreadyExistsException()
        {
            #region Arrange
            int    pokemonId       = PokemonIdMother.Id();
            string userId          = UserIdMother.Id();
            string expectedMessage = $"The pokemon with Id '{pokemonId}' already exists in user favorites list";

            var userRepository = new Mock <UserRepository>();

            userRepository
            .Setup(r => r.Find(It.IsAny <UserId>()))
            .ReturnsAsync(UserMother.UserWithFavorites(userId, pokemonId));

            userRepository
            .Setup(r => r.Exists(It.IsAny <UserId>()))
            .ReturnsAsync(true);

            userRepository
            .Setup(r => r.SaveFavorites(It.IsAny <User>()));

            UserFinder                userFinder                = new UserFinder(userRepository.Object);
            PokemonFavoriteCreator    pokemonFavoriteCreator    = new PokemonFavoriteCreator(userRepository.Object);
            AddPokemonToUserFavorites addPokemonToUserFavorites = new AddPokemonToUserFavorites(userFinder, pokemonFavoriteCreator);

            #endregion

            #region Act
            var exception = Record.ExceptionAsync(async() => await addPokemonToUserFavorites.Execute(userId, pokemonId));

            #endregion

            #region Assert
            Assert.Equal(expectedMessage, exception.Result.Message);

            #endregion
        }
예제 #7
0
        private void AddUserAndTimeStampToText()
        {
            string user = UserFinder.CurrentUser().UserName;

            Text += "\n" + User.UserName + ", " + Clock.Now();
        }
 public SumUserRecords(SumRecords sumRecords, UserFinder userFinder, RecordFinder recordFinder)
 {
     this.sum          = sumRecords;
     this.userFinder   = userFinder;
     this.recordFinder = recordFinder;
 }
예제 #9
0
 public Login(UserFinder userFinder, ITokenGenerator tokenGenerator)
 {
     this.finder         = userFinder;
     this.tokenGenerator = tokenGenerator;
 }
 public AddPokemonToUserFavorites(UserFinder userFinder, PokemonFavoriteCreator pokemonFavoriteCreator)
 {
     _userFinder             = userFinder;
     _pokemonFavoriteCreator = pokemonFavoriteCreator;
 }
예제 #11
0
 protected bool IsAssignedToCurrentUser()
 {
     return(AssignedTo == UserFinder.CurrentUser());
 }
예제 #12
0
 public UsersController(UserFinder userFinder, UserEraser userEraser)
 {
     this.userFinder = userFinder;
     this.userEraser = userEraser;
 }
 public ListUserRecords(IRecordRepository recordRepository, UserFinder userFinder)
 {
     this.repository = recordRepository;
     this.finder     = userFinder;
 }
예제 #14
0
 public GetUser(UserFinder userFinder) => this.finder = userFinder;
예제 #15
0
        private static ErrorList ValidateUser(User user)
        {
            ErrorList errors = new ErrorList();

            if (StringUtils.IsBlank(user.FirstName))
            {
                errors.Add("First name is required");
            }

            if (StringUtils.IsBlank(user.LastName))
            {
                errors.Add("Last name is required");
            }

            if (StringUtils.IsBlank(user.Email))
            {
                errors.Add("Email address is required");
            }
            else if (!StringUtils.IsEmail(user.Email))
            {
                errors.Add("Invalid email address");
            }
            else
            {
                Company company = UserSecurityManager.GetCompanyByDomain(user.Email);

                if (company.IsNull)
                {
                    switch (RegistrationEmailFormat)
                    {
                    case RegistrationEmailFormatType.InternalUsers:
                    {
                        if (user.IsEmployee && company.IsNull)
                        {
                            errors.Add("Email address is not valid for external users");
                        }

                        break;
                    }

                    case RegistrationEmailFormatType.AllUsers:
                    {
                        if (company.IsNull)
                        {
                            errors.Add("Email address must belong to approved domain");
                        }

                        break;
                    }
                    }
                }
                else
                {
                    User u = User.GetByEmail(user.Email);

                    if (!u.IsNull && !u.UserId.Equals(user.UserId))
                    {
                        errors.Add("Email address is already in use");
                    }
                }
            }

            if (StringUtils.IsBlank(user.CompanyName))
            {
                errors.Add("Company name is required");
            }

            if (StringUtils.IsBlank(user.Password))
            {
                errors.Add("Password is required");
            }

            if (user.PasswordChanged)
            {
                if (user.UnencryptedPassword.Length == 0)
                {
                    errors.Add("Password confirmation is required");
                }
                else if (user.UnencryptedPassword != user.UnencryptedConfirmPassword)
                {
                    errors.Add("Password and confirm password do not match");
                }
                else
                {
                    ErrorList e = PasswordGenerator.ValidatePassword(user.UnencryptedPassword);

                    if (e.Count > 0)
                    {
                        errors.AddRange(e);
                    }
                    else if (!user.IsNew && PasswordHistory.IsRecentPassword(user, user.Password))
                    {
                        errors.Add("Password has been used recently and cannot be used again");
                    }
                }
            }

            if (user.Brands.Count == 0)
            {
                errors.Add("User must be assigned to at least one brand");
            }
            else
            {
                if (user.PrimaryBrandId <= 0)
                {
                    errors.Add("One brand must be select as the main brand");
                }
                else if (user.Brands.FindIndex(b => b.BrandId == user.PrimaryBrandId) < 0)
                {
                    errors.Add("The main brand must be selected");
                }
            }

            if (StringUtils.IsBlank(user.CompanyName))
            {
                errors.Add("Company name is required");
            }

            if (user.UserRoleId == 0)
            {
                errors.Add("System Error : User role must be specified");
            }

            if (user.UserRole == UserRole.BrandAdministrator)
            {
                // Only one brand admin per business-unit
                UserFinder finder = new UserFinder {
                    UserRole = UserRole.BrandAdministrator, PrimaryBrandId = user.PrimaryBrandId
                };
                User u = User.FindOne(finder);

                // Found a user, and user id is different from this user, so don't allow change
                if (!u.IsNull && !u.UserId.Equals(user.UserId))
                {
                    string message = string.Format("The user {0} is already assigned to the Brand Administrator role for the selected brand(s)", u.FullName);
                    errors.Add(message);
                }
            }

            return(errors);
        }
 public GetPokemonUserFavorites(UserFinder userFinder,
                                PokemonFavoriteSearcher pokemonFavoriteSearcher)
 {
     _userFinder = userFinder;
     _pokemonFavoriteSearcher = pokemonFavoriteSearcher;
 }
예제 #17
0
 public FinderTest()
 {
     _userFinder = new UserFinder(new ConnectionFactory());
 }
예제 #18
0
 public IQueryable <IUser> AutoCompleteAssignedTo(string match)
 {
     return(UserFinder.FindUsersByRealOrUserName(match));
 }
 public CreateRecord(IRecordRepository recordRepository, UserFinder userFinder)
 {
     this.repository = recordRepository;
     this.finder     = userFinder;
 }
예제 #20
0
 public virtual void Persisting()
 {
     User         = UserFinder.CurrentUser();
     LastModified = Clock.Now();
 }