internal static IUserBasic CreateUser(IApplicationSettings applicationSettings, IApplication application , DummyDataManager dummyDataManager, WorkmateRoleProvider roleProvider , WorkmateMembershipProvider membershipProvider, string password, AccountStatus accountStatus) { DummyUser user = dummyDataManager.GetDummy(); string firstName = user.Firstname; string lastName = user.Surname; TimeZoneInfo timeZoneInfo = TimeZoneUtility.GetGMTStandardTimeZone(); IUserBasic userBasic = new UserBasic(user.Email, user.Email, 1) { AccountStatus = accountStatus, TimeZoneInfo = timeZoneInfo }; Guid uniqueId; List <UserRole> userRoles = new List <UserRole>() { UserRole.SystemAdministrator, UserRole.Registered }; UserCreateStatus userCreateStatus = membershipProvider.CreateUser(ref userBasic, password, userRoles, UserNameDisplayMode.FullName , firstName, lastName , Workmate.Components.Contracts.Membership.Gender.Male , out uniqueId, application.ApplicationId).Status; Assert.AreEqual(UserCreateStatus.Success, userCreateStatus); Assert.Greater(userBasic.UserId, 0); return(membershipProvider.GetUserBasic(userBasic.UserId, false)); }
public void Test_ResetPassword() { IMembershipSettings membershipSettings = Workmate.Components.InstanceContainer.MembershipSettings; IApplicationSettings applicationSettings = Workmate.Components.InstanceContainer.ApplicationSettings; WorkmateRoleProvider roleProvider = new WorkmateRoleProvider(); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); string password = "******"; string newPassword = "******"; IUserBasic userBasic = CreateUser(applicationSettings, this.Application, this.DummyDataManager, roleProvider, membershipProvider, password, AccountStatus.Valid); IUserBasic validatedUserBasic; ValidateUserStatus validateUserStatus = membershipProvider.ValidateUser(this.Application.ApplicationId, userBasic.Email, password, out validatedUserBasic); Assert.AreEqual(ValidateUserStatus.Valid, validateUserStatus); ChangePasswordStatus changePasswordStatus = membershipProvider.ResetPassword(this.Application.ApplicationId, userBasic, newPassword); Assert.AreEqual(ChangePasswordStatus.Success, changePasswordStatus); validateUserStatus = membershipProvider.ValidateUser(this.Application.ApplicationId, userBasic.Email, newPassword, out validatedUserBasic); Assert.AreEqual(ValidateUserStatus.Valid, validateUserStatus); }
private void Test_UserLocking_Valid(AccountStatus accountStatus) { IMembershipSettings membershipSettings = Workmate.Components.InstanceContainer.MembershipSettings; membershipSettings.MaxInvalidPasswordAttempts = 3; IApplicationSettings applicationSettings = Workmate.Components.InstanceContainer.ApplicationSettings; WorkmateRoleProvider roleProvider = new WorkmateRoleProvider(); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); string password = "******"; IUserBasic userBasic = CreateUser(applicationSettings, this.Application, this.DummyDataManager, roleProvider, membershipProvider, password, accountStatus); IUserBasic validatedUser; ValidateUserStatus validateUserStatus; for (int i = 0; i < membershipSettings.MaxInvalidPasswordAttempts; i++) { validateUserStatus = membershipProvider.ValidateUser(this.Application.ApplicationId, userBasic.UserName, "465", out validatedUser); Assert.AreEqual(ValidateUserStatus.WrongPassword, validateUserStatus); } // by the next attempt we expect the user to be locked validateUserStatus = membershipProvider.ValidateUser(this.Application.ApplicationId, userBasic.UserName, "123", out validatedUser); Assert.AreEqual(ValidateUserStatus.UserIsLockedOut, validateUserStatus); // test unlock Assert.IsTrue(membershipProvider.UnlockUser(userBasic.UserId)); userBasic = membershipProvider.GetUserBasic(userBasic.UserId, false); Assert.AreEqual(accountStatus, userBasic.AccountStatus); }
internal static IUserBasic CreateUser(IDataStore dataStore, IApplicationSettings applicationSettings, IApplication application, DummyDataManager dummyDataManager) { IMembershipSettings membershipSettings = InstanceContainer.MembershipSettings; WorkmateRoleProvider roleProvider = new WorkmateRoleProvider(); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); return(CreateUser(applicationSettings, application, dummyDataManager, roleProvider, membershipProvider, "password", AccountStatus.Valid)); }
public void Test_CreateUser() { IApplicationSettings applicationSettings = Workmate.Components.InstanceContainer.ApplicationSettings; WorkmateRoleProvider roleProvider = new WorkmateRoleProvider(); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); DummyUser user = this.DummyDataManager.GetDummy(); string firstName = user.Firstname; string lastName = user.Surname; string password = "******"; AccountStatus accountStatus = AccountStatus.Valid; TimeZoneInfo timeZoneInfo = TimeZoneUtility.GetGMTStandardTimeZone(); IUserBasic userBasic = new UserBasic(user.Email, user.Email, 1) { AccountStatus = accountStatus, TimeZoneInfo = timeZoneInfo }; Guid uniqueId; List <UserRole> userRoles = new List <UserRole>() { UserRole.SystemAdministrator, UserRole.Registered }; UserCreateStatus userCreateStatus = membershipProvider.CreateUser(ref userBasic, password, userRoles, UserNameDisplayMode.FullName , firstName, lastName , DebugUtility.GetRandomEnum <Workmate.Components.Contracts.Membership.Gender>(this.Random) , out uniqueId, this.Application.ApplicationId).Status; Assert.AreEqual(UserCreateStatus.Success, userCreateStatus); Assert.Greater(userBasic.UserId, 0); userBasic = membershipProvider.GetUserBasic(userBasic.UserId, false); Assert.AreEqual(user.Email, userBasic.UserName); Assert.AreEqual(user.Email, userBasic.Email); Assert.AreEqual(accountStatus, userBasic.AccountStatus); Assert.AreEqual(timeZoneInfo.Id, userBasic.TimeZoneInfoId); }
internal static ProfileImage CreateProfileImage(IDataStore dataStore, int applicationId, IUserBasic fileOwner, Random random) { ProfileImageManager manager = new ProfileImageManager(dataStore); ProfileImage file = new ProfileImage(applicationId, fileOwner); ASCIIEncoding encoding = new ASCIIEncoding(); string contentString = "Some String " + random.Next(1000000, 10000000); file.Height = random.Next(10, 1000); file.Width = random.Next(10, 1000); file.Content = encoding.GetBytes(contentString); file.ContentSize = file.Content.Length; file.ContentType = "TEXT " + random.Next(1000, 10000); file.FriendlyFileName = "Some Name " + random.Next(1000000, 10000000); file.IsTemporary = false; BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.CreateTemporaryImage(file); Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status); int newFileId; Assert.IsTrue(manager.AssignTemporaryProfileImageToUser(file.ImageId, out newFileId)); ProfileImage dsFile = manager.GetProfileImage(newFileId); Assert.IsNotNull(dsFile); Assert.AreEqual(contentString, encoding.GetString(dsFile.Content)); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); fileOwner = membershipProvider.GetUserBasic(fileOwner.UserId, false); Assert.AreEqual(fileOwner.ProfileImageId, newFileId); return(dsFile); }
public void Test_ChangeEmail() { IMembershipSettings membershipSettings = Workmate.Components.InstanceContainer.MembershipSettings; IApplicationSettings applicationSettings = Workmate.Components.InstanceContainer.ApplicationSettings; WorkmateRoleProvider roleProvider = new WorkmateRoleProvider(); WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider(); string password = "******"; IUserBasic userBasic = CreateUser(applicationSettings, this.Application, this.DummyDataManager, roleProvider, membershipProvider, password, AccountStatus.Valid); userBasic = membershipProvider.GetUserBasicByUserName(this.Application.ApplicationId, userBasic.UserName, false); Assert.IsNotNull(userBasic); DummyUser dummy = this.DummyDataManager.GetDummy(); Assert.AreNotEqual(userBasic.Email, dummy.Email); membershipProvider.ChangeEmail(userBasic, dummy.Email); Assert.AreEqual(userBasic.Email, dummy.Email); userBasic = membershipProvider.GetUserBasicByEmail(this.Application.ApplicationId, userBasic.Email, false); Assert.AreEqual(userBasic.Email, dummy.Email); }
protected void Application_Start() { DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(EmailAttribute), typeof(RegularExpressionAttributeAdapter)); #region initialize string baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory; IApplicationSettings applicationSettings = new ApplicationSettings(ConfigurationManager.AppSettings, ConfigurationManager.ConnectionStrings); log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(applicationSettings.Log4NetConfigPath)); IMessageClientConfigurationSection section = (IMessageClientConfigurationSection)ConfigurationManager.GetSection("clientSettings"); ClientMessageHandlerProxy clientMessageHandlerProxy = new ClientMessageHandlerProxy(section); ApplicationMessageHandler applicationMessageHandler = new ApplicationMessageHandler(clientMessageHandlerProxy); applicationMessageHandler.RefreshApplicationDataRequest += new EventHandler <EventArgs>(applicationMessageHandler_RefreshApplicationDataRequest); applicationMessageHandler.CommunicationStateChanged += new EventHandler <CommunicationStateChangedEventArgs>(applicationMessageHandler_CommunicationStateChanged); applicationMessageHandler.Connect(); IDataStore dataStore = null; try { string dataStoreContextTypeAssemblyName = applicationSettings.DataStoreContextType.Substring(applicationSettings.DataStoreContextType.LastIndexOf(',') + 1).Trim(); string dataStoreContextTypeName = applicationSettings.DataStoreContextType.Substring(0, applicationSettings.DataStoreContextType.IndexOf(',')); Assembly assembly = Assembly.Load(dataStoreContextTypeAssemblyName); // load into default load context Type type = assembly.GetType(dataStoreContextTypeName); dataStore = Activator.CreateInstance(type) as IDataStore; } catch (Exception ex) { throw new ConfigurationErrorsException("Error loading data store object, see inner exception for further details.", ex); } if (dataStore == null) { throw new ConfigurationErrorsException("Datastore is not provided."); } dataStore.Initialize(applicationSettings.DefaultConnectionString); System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath); MembershipSection configSection = (MembershipSection)config.GetSection("system.web/membership"); MembershipSettings membershipSettings = new MembershipSettings( (NameValueCollection)configSection.Providers[configSection.DefaultProvider].Parameters); Workmate.Components.InstanceContainer.Initialize( dataStore , applicationSettings , membershipSettings); // we need to load this after singletons initialize WorkmateMembershipProvider workmateMembershipProvider = new WorkmateMembershipProvider(); WorkmateRoleProvider workmateRoleProvider = new WorkmateRoleProvider(); ArticleManager articleManager = new ArticleManager(dataStore); // the singletons class must be initialized here so it can be used later on InstanceContainer.Initialize( new ApplicationContext(baseDirectory, applicationMessageHandler, applicationSettings, dataStore) , new TicketManager(applicationSettings, workmateMembershipProvider) , workmateMembershipProvider , workmateRoleProvider , articleManager , new RequestHelper() , new ArticleAttachmentManager(dataStore) , new Workmate.Components.ApplicationManager(dataStore) , new ArticleGroupManager(dataStore) , new ArticleGroupThreadManager(dataStore) , new ApplicationDataCache() , new ProfileImageManager(dataStore) , new SystemProfileImageManager(dataStore) , new EmailManager(dataStore) , new EmailPublisher() , new OfficeManager(dataStore) , new DepartmentManager(dataStore) ); #endregion #region startup AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RefreshApplicationData(); #endregion #region messaging #endregion }