예제 #1
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);
            }
        }
예제 #2
0
        public static int           newUser(this TM_UserData userData, string username, string password, string email, string firstname, string lastname, string note, string title, string company, string country, string state, List <UserTag> userTags, int groupId)
        {
            if (userData.isNull())
            {
                return(-1);
            }

            var userId = Math.Abs(Guid.NewGuid().hash());

            "Creating new user: {0} with id {1}".debug(username, userId);

            if (groupId < 1)                                    //set default user type
            {
                groupId = 2;                                    //by default new users are of type 2 (i.e. Reader)
            }
            else
            {
                UserRole.ManageUsers.demand();  // only users with UserRole.ManageUsers should be able to create non-default users
            }
            var tmUser = new TMUser {
                UserID    = userId,
                UserName  = username,
                FirstName = firstname,
                LastName  = lastname,
                Company   = (company),
                Country   = country,
                State     = state,
                GroupID   = groupId,
                Title     = title,
                EMail     = email ?? "",
                UserTags  = userTags
            };

            var tmConfig = TMConfig.Current;

            tmUser.AccountStatus.UserEnabled    = tmConfig.newAccountsEnabled();
            tmUser.AccountStatus.ExpirationDate = tmConfig.currentExpirationDate();

            tmUser.SecretData.PasswordHash = tmUser.createPasswordHash(password);
            userData.TMUsers.Add(tmUser);

            if (TMConfig.Current.windowsAuthentication_Enabled().isFalse())
            {
                SendEmails.SendNewUserEmails("New user created: {0}".format(tmUser.UserName), tmUser);
            }

            tmUser.logUserActivity("New User", "");     // this will trigger tmUser.event_User_Updated();

            //tmUser.event_User_Updated(); //tmUser.saveTmUser();
            //userData.triggerGitCommit();
            return(userId);
        }