コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: MvcApplication.cs プロジェクト: tm011064/Luputa
        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
        }