Ejemplo n.º 1
0
        [Assert_Admin] public void ManualyGitCommitNewUsers()
        {
            userData.AutoGitCommit = false;
            var head1 = nGit.head();

            Assert.IsNotNull(nGit);
            Assert.IsTrue(userData.Path_UserData.isGitRepository());
            Assert.IsFalse(head1.isNull());

            var tmUser      = userData.newUser().tmUser();
            var userXmlFile = tmUser.getTmUserXmlFile().fileName();
            var untracked   = nGit.status_Raw().untracked();

            Assert.AreEqual(1, untracked.size());
            Assert.AreEqual(userXmlFile, untracked.first());

            nGit.add_and_Commit_using_Status();
            untracked = nGit.status_Raw().untracked();
            var head2 = nGit.head();

            Assert.AreEqual(0, untracked.size());
            Assert.IsFalse(nGit.head().isNull());
            Assert.AreNotEqual(head1, head2);
            "Head is now: {0}".info(nGit.head());
        }
Ejemplo n.º 2
0
        public static int           createDefaultAdminUser(this TM_UserData userData)
        {
            try
            {
                //var tmServer = userData.tmServer();

                if (userData.isNull())
                {
                    return(-1);
                }

                //if(userData.tmServer().Users_Create_Default_Admin.isFalse())
                //    return -1;

                var tmConfig = TMConfig.Current;
                lock (tmConfig)
                {
                    var defaultAdminUser_Name  = tmConfig.TMSecurity.Default_AdminUserName;
                    var defaultAdminUser_Pwd   = tmConfig.TMSecurity.Default_AdminPassword;
                    var defaultAdminUser_Email = tmConfig.TMSecurity.Default_AdminEmail;
                    var adminUser = userData.tmUser(defaultAdminUser_Name);

                    if (adminUser.notNull())
                    {
                        if (adminUser.SecretData.PasswordHash.notValid() || tmConfig.OnInstallation.ForceDefaultAdminPassword)
                        {
                            "[createDefaultAdminUser] reseting password since passwordHash was not valid and ForceDefaultAdminPassword was set".error();
                            adminUser.SecretData.PasswordHash = adminUser.createPasswordHash(defaultAdminUser_Pwd);
                            adminUser.event_User_Updated(); //adminUser.saveTmUser();
                        }
                        if (adminUser.GroupID != (int)UserGroup.Admin)
                        {
                            "[createDefaultAdminUser] admin user was not admin (changed to admin)".error();
                            adminUser.GroupID = (int)UserGroup.Admin;
                            adminUser.event_User_Updated(); //adminUser.saveTmUser();
                        }
                        return(adminUser.UserID);
                    }
                    "[createDefaultAdminUser] admin user didn't exist (creating it)".debug();
                    var userId = userData.newUser(defaultAdminUser_Name, defaultAdminUser_Pwd, defaultAdminUser_Email, 1);
                    adminUser = userId.tmUser();
                    adminUser.AccountStatus.ExpirationDate = DateTime.Now.AddYears(10); // default to setting the expiry value to 10 years in the future
                    adminUser.event_User_Updated();                                     //adminUser.saveTmUser();
                    return(userId);
                }
            }
            catch (Exception ex)
            {
                ex.log("[TM_UserData][createDefaultAdminUser]");
                return(-1);
            }
        }
Ejemplo n.º 3
0
        public static int           createTmUser(this TM_UserData userData, NewUser newUser)
        {
            if (newUser.isNull())
            {
                return(0);
            }

            // ensure the email is lowercase (will fail validation otherwise)
            newUser.Email = newUser.Email.lower();

            //validate user against the DataContract specificed in the NewUser class
            if (newUser.validation_Failed())
            {
                return(0);
            }
            if (newUser.UserTags.notEmpty())
            {
                foreach (var userTag in newUser.UserTags)
                {
                    if (userTag.validation_Failed())
                    {
                        return(0);
                    }
                }
            }
            // if there is a groupId provided we must check if the user has the manageUsers Priviledge
            if (newUser.GroupId != 0)
            {
                UserRole.ManageUsers.demand();
            }

            // Check if there is already a user with the provided username or email
            if (newUser.Username.tmUser().notNull() || newUser.Email.tmUser_FromEmail().notNull())
            {
                userData.logTBotActivity("User Creation Fail", "Username ('{0}') or Email ('{1})already existed".format(newUser.Username, newUser.Email));
                return(0);
            }

            // Create user

            return(userData.newUser(newUser.Username, newUser.Password, newUser.Email, newUser.Firstname, newUser.Lastname, newUser.Note, newUser.Title, newUser.Company, newUser.Country, newUser.State, newUser.UserTags, newUser.GroupId));
        }
Ejemplo n.º 4
0
        [Test] public void Manualy_Git_Commit_NewUsers()
        {
            var head1 = nGit.head();

            nGit.assert_Is_Not_Null();
            tmFileStorage.path_UserData().isGitRepository()
            .assert_Is_True();
            head1.assert_Not_Null();

            var tmUser      = userData.newUser().tmUser();
            var userXmlFile = tmFileStorage.user_XmlFile_Location(tmUser).assert_File_Exists();
            var untracked   = nGit.status_Raw().untracked();

            untracked.assert_Size_Is(1)
            .first().assert_Equal_To(@"Users/{0}".format(userXmlFile.fileName()));

            nGit.add_and_Commit_using_Status();

            nGit.status_Raw().untracked().assert_Size_Is(0);
            nGit.head().assert_Not_Null()
            .assert_Is_Not(head1);
        }
Ejemplo n.º 5
0
/*
 *      [Test]
 *      //[Ignore("Rewrite to take into account new Git Storage")]
 *      //todo: fix compilation error
 *
 *      [Assert_Admin] public void ManualyGitCommitNewUsers()
 *      {
 *          TMConfig.Current.Git.UserData_Git_Enabled = false;
 *
 *          var head1              = nGit.head();
 *
 *          Assert.IsNotNull(nGit);
 *          Assert.IsTrue   (userData.Path_UserData.isGitRepository());
 *          Assert.IsFalse   (head1.isNull());
 *
 *          var tmUser      = userData.newUser().tmUser();
 *          var userXmlFile = tmUser.getTmUserXmlFile().fileName();
 *          var untracked   = nGit.status_Untracked();
 *
 *          Assert.AreEqual (1,untracked.size());
 *          Assert.AreEqual (userXmlFile, untracked.first().fileName());
 *
 *          nGit.add_and_Commit_using_Status();
 *          untracked         = nGit.status_Untracked();
 *          var head2         = nGit.head();
 *          Assert.AreEqual   (0,untracked.size());
 *          Assert.IsFalse    (nGit.head().isNull());
 *          Assert.AreNotEqual(head1, head2);
 *          "Head is now: {0}".info(nGit.head());
 *
 *          TMConfig.Current.Git.UserData_Git_Enabled = true;
 *      }*/
        [Test][Assert_Admin] public void CheckGitRepoDoesCommits_OnNewUser()
        {
            Assert.IsTrue(userData.tmConfig().Git.UserData_Git_Enabled);

            userData.newUser();                        // adding a user
            Assert.IsNotNull(nGit.head());
            userData.newUser();                        // adding another user

            var headBeforeUser = nGit.head();

            userData.newUser();
            var headAfterUser = nGit.head();

            Assert.IsFalse(nGit.head().isNull());
            Assert.AreNotEqual(headBeforeUser, headAfterUser, "Git Head value should be different after a TMUser create");
            Assert.AreNotEqual(2, nGit.commits().size());
        }
Ejemplo n.º 6
0
 public static int           newUser(this TM_UserData userData, string username, string password, string email)
 {
     return(userData.newUser(username, password, email, 0));
 }
Ejemplo n.º 7
0
        public static int           newUser(this TM_UserData userData, string username, string password)
        {
            var randomEmail = "{0}@{1}.{2}".format(7.randomLetters(), 5.randomLetters(), 2.randomLetters()).lower();

            return(userData.newUser(username, password, randomEmail, 0));
        }
Ejemplo n.º 8
0
 public static int           newUser(this TM_UserData userData, string username)
 {
     return(userData.newUser(username, 5.randomLetters()));
 }
Ejemplo n.º 9
0
 public static int           newUser(this TM_UserData userData)
 {
     return(userData.newUser("test_user_{0}".format(5.randomLetters())));
 }
Ejemplo n.º 10
0
 public static TMUser        createUser(this TM_UserData userData)
 {
     return(userData.newUser().tmUser());
 }
Ejemplo n.º 11
0
        public static Signup_Result createTmUserResponse(this TM_UserData userData, NewUser newUser)
        {
            var sigupResponse = new Signup_Result();
            var tmConfig      = TMConfig.Current;

            // ensure the email is lowercase (will fail validation otherwise)
            if (newUser.isNull())
            {
                userData.logTBotActivity("User Creation Fail", "TEAM Mentor user is null");
                sigupResponse.Signup_Status        = Signup_Result.SignupStatus.Signup_Error;
                sigupResponse.UserCreated          = 0;
                sigupResponse.Simple_Error_Message = tmConfig.TMErrorMessages.General_SignUp_Error_Message;
                return(sigupResponse);
            }
            newUser.Email = newUser.Email.lower();

            //Validating if Username has not been already registered.
            if (newUser.Username.tmUser().notNull())
            {
                userData.logTBotActivity("User Creation Fail", "Username ('{0}') already exist in TEAM Mentor".format(newUser.Username));
                return(GetErrorMessage("Username", tmConfig.TMErrorMessages.SignUpUsernameAlreadyExist));
            }
            //Email check (length, null, valid)
            if (newUser.Email.notNull() && newUser.Email.Length > 256)
            {
                userData.logTBotActivity("User Creation Fail", "Input rejected because email address ('{0}') is larger than 256 characters".format(newUser.Email));
                return(GetErrorMessage("Email", tmConfig.TMErrorMessages.Email_Address_Is_Invalid));
            }
            //Check email format
            if (newUser.valid_Email_Address().isFalse())
            {
                userData.logTBotActivity("User Creation Fail", "Input rejected because email address ('{0}') is not valid".format(newUser.Email));
                return(GetErrorMessage("Email", tmConfig.TMErrorMessages.Email_Address_Is_Invalid));
            }

            if (newUser.Email.tmUser_FromEmail().notNull())
            {
                userData.logTBotActivity("User Creation Fail", "Email ('{0}') already existed".format(newUser.Email));
                return(GetErrorMessage("Email", tmConfig.TMErrorMessages.SignUpEmailAlreadyExist));
            }

            //Validate Password Length.
            if (newUser.Password.Length < 8 || newUser.Password.Length > 256)
            {
                userData.logTBotActivity("User Creation Fail", "Password must be 8 to 256 character long but was {0}".format(newUser.Password.Length));
                return(GetErrorMessage("Password", tmConfig.TMErrorMessages.PasswordLengthErrorMessage));
            }
            //Password complexity
            if (!Regex.IsMatch(newUser.Password, ValidationRegex.PasswordComplexity))
            {
                userData.logTBotActivity("User Creation Fail", "Password {0} does not meet complexity requirements.".format(newUser.Password));
                return(GetErrorMessage("Password", tmConfig.TMErrorMessages.PasswordComplexityErroMessage));
            }
            //validate user against the DataContract specificed in the NewUser class
            if (newUser.validation_Failed())
            {
                return(ValidationFailed(tmConfig, newUser));
            }

            if (newUser.UserTags.notEmpty())
            {
                foreach (var userTag in newUser.UserTags)
                {
                    if (userTag.validation_Failed())
                    {
                        return(UserTags_Validation(tmConfig, userTag));
                    }
                }
            }
            // if there is a groupId provided we must check if the user has the manageUsers Priviledge
            if (newUser.GroupId != 0)
            {
                UserRole.ManageUsers.demand();
            }

            var userCreated = userData.newUser(newUser.Username, newUser.Password, newUser.Email, newUser.Firstname, newUser.Lastname, newUser.Note, newUser.Title, newUser.Company, newUser.Country, newUser.State, newUser.UserTags, newUser.GroupId);

            if (userCreated > 0)
            {
                sigupResponse.UserCreated   = userCreated;
                sigupResponse.Signup_Status = Signup_Result.SignupStatus.Signup_Ok;
            }
            else
            {
                userData.logTBotActivity("User Creation Fail", "Error occurred creating user".format(newUser.ToString()));
                sigupResponse.UserCreated          = userCreated;
                sigupResponse.Signup_Status        = Signup_Result.SignupStatus.Validation_Failed;
                sigupResponse.Simple_Error_Message = tmConfig.TMErrorMessages.General_SignUp_Error_Message;
            }
            return(sigupResponse);
        }
Ejemplo n.º 12
0
 public static int           newUser(this TM_UserData userData, string username, string password, string email, int groupId)
 {
     return(userData.newUser(username, password, email, "...", "...", "...", "...", "...", "...", "...", null, groupId));
 }