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 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)); }
public static Login_Result loginResponse(this TM_UserData userData, string username, string password) { try { //Empty fileds check if (username.valid() && password.valid()) { var tmUser = userData.tmUser(username); var tmConfig = TMConfig.Current; //Checking if username does exist in the database. if (tmUser.notNull()) { //Checking if account is expired if (tmUser.account_Expired()) { tmUser.logUserActivity("Account Expired", "Expiry date: {0}".format(tmUser.AccountStatus.ExpirationDate)); return(AccountExpiredResponse(tmConfig)); } //Password verification var pwdOk = tmUser.SecretData.PasswordHash == tmUser.createPasswordHash(password); if (pwdOk) { //Checking if account is enabled if (tmUser.account_Enabled()) { //Login successfull. Returning the authentication token. var token = tmUser.login("Password"); var response = new Login_Result { Token = token, Login_Status = Login_Result.LoginStatus.Login_Ok }; return(response); } //Account disabled. tmUser.logUserActivity("Login Fail", "pwd ok, but account disabled"); return(AccountDisabledResponse(tmConfig)); } //Login fail. Wrong Password tmUser.logUserActivity("Login Fail", "bad pwd"); return(BadPasswordResponse(tmConfig)); } userData.logTBotActivity("Login Fail", "bad username: {0}".format(username)); return(BadUsernameResponse(tmConfig)); } } catch (Exception ex) { ex.log("[TM_Xml_Database] login"); } return(new Login_Result()); }
public static bool secretData_Save(this TM_UserData userData) { var result = true; if (userData.UsingFileStorage) { var secretDataFile = userData.secretData_FileLocation(); result = userData.SecretData.saveAs(secretDataFile); userData.triggerGitCommit(); } userData.logTBotActivity("TM_SecretData saved", ""); return(result); }
/* public static bool setUserDataPath(this TM_UserData userData, string userDataPath) * { * if (userDataPath.isNull() || userDataPath.dirExists().isFalse()) * { * "[TM_UserData] [setUserDataPath] provided userDataPath didn't exist: {0}".error("userDataPath"); * return false; * } * try * { * userData.Path_UserData = userDataPath; * userData.resetData(); * userData.setUp(); * userData.loadTmUserData(); * return true; * } * catch (Exception ex) * { * ex.log("[TM_UserData] [setUserDataPath]"); * return false; * } * }*/ public static bool deleteTmUser(this TM_UserData userData, TMUser tmUser) { if (tmUser.notNull()) { lock (userData.TMUsers) { userData.TMUsers.remove(tmUser); userData.Events.User_Deleted.raise(tmUser); userData.logTBotActivity("User Delete", "{0} - {1}".format(tmUser.UserName, tmUser.UserID)); return(true); } } return(false); }
/*public static Guid login_Using_LoginToken (this TM_UserData userData, string username, Guid loginToken) * { * try * { * if (username.valid() && loginToken != Guid.Empty) * { * var tmUser = userData.tmUser(username); * if (tmUser.notNull()) * { * if (tmUser.SecretData.SingleUseLoginToken == loginToken) * { * tmUser.SecretData.SingleUseLoginToken = Guid.Empty; * tmUser.logUserActivity("SingleUseLoginToken used", loginToken.str()); * return tmUser.login(); * } * } * } * } * catch (Exception ex) * { * ex.log("[TM_Xml_Database] login_Using_LoginToken"); * } * return Guid.Empty; * }*/ public static Guid login(this TM_UserData userData, string username, string password) { try { if (username.valid() && password.valid()) { var tmUser = userData.tmUser(username); if (tmUser.notNull()) { // tmUser.SecretData.SessionID = Guid.Empty; // reset the user SessionID if (tmUser.account_Expired()) { tmUser.logUserActivity("Account Expired", "Expiry date: {0}".format(tmUser.AccountStatus.ExpirationDate)); return(Guid.Empty); } var pwdOk = tmUser.SecretData.PasswordHash == tmUser.createPasswordHash(password); if (pwdOk) { if (tmUser.account_Enabled()) { return(tmUser.login("Password")); // call login with a new SessionID } tmUser.logUserActivity("Login Fail", "pwd ok, but account disabled"); } else { tmUser.Stats.LoginFail++; tmUser.logUserActivity("Login Fail", "bad pwd"); } } else { userData.logTBotActivity("Login Fail", "bad username: {0}".format(username)); } } } catch (Exception ex) { ex.log("[TM_Xml_Database] login"); } return(Guid.Empty); }
public static bool deleteTmUser(this TM_UserData userData, TMUser tmUser) { if (tmUser.notNull()) { lock (userData.TMUsers) { userData.TMUsers.remove(tmUser); if (userData.UsingFileStorage) { lock (tmUser) { tmUser.getTmUserXmlFile().file_Delete(); userData.triggerGitCommit(); } } userData.logTBotActivity("User Delete", "{0} - {1}".format(tmUser.UserName, tmUser.UserID)); return(true); } } return(false); }