public static Guid login(this TM_UserData userData,TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull()) { if (sessionId != Guid.Empty) { tmUser.Stats.LastLogin = DateTime.Now; tmUser.Stats.LoginOk++; tmUser.logUserActivity("User Login", tmUser.UserName); userData.ActiveSessions.add(sessionId, tmUser); SendEmails.SendEmailToTM("User Login: {0}".format(tmUser.UserName), tmUser.toXml()); return sessionId; } tmUser.Stats.LoginFail++; } } catch (Exception ex) { ex.log("[TM_UserData][login]"); } return Guid.Empty; }
public UserActivity LogUserActivity(TMUser tmUser , UserActivity userActivity) { if (tmUser.notNull() && tmUser.ID != Guid.Empty) { tmUser.UserActivities.Add(userActivity); tmUser.saveTmUser(); } ActivitiesLog.Add(userActivity); return userActivity; }
public static bool tmUser_Delete(this TM_FileStorage tmFileStorage, TMUser tmUser) { if (tmUser.notNull()) { lock (tmUser) { var userXmlFile = tmFileStorage.user_XmlFile_Location(tmUser); if (userXmlFile.file_Delete()) return userXmlFile.fileExists(); //userData.triggerGitCommit(); } } return false; }
/* 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 bool deleteTmUser(this TM_UserData userData, TMUser tmUser) { if (tmUser.notNull()) { userData.TMUsers.remove(tmUser); if (userData.UsingFileStorage) { lock (tmUser) { tmUser.getTmUserXmlFile().file_Delete(); userData.triggerGitCommit(); } } return true; } return false; }
/*public static UserActivity logUserActivity (this UserActivities userActivities, string who, string action, string detail) { var userActivity = userActivities.newUserActivity(who,action,detail); return userActivities.logUserActivity(userActivity, null); } */ public static UserActivity logUserActivity(this UserActivities userActivities, UserActivity userActivity, TMUser tmUser) { if (userActivities.notNull() && userActivity.notNull()) { if(userActivities.logging_Enabled()) { userActivities.ActivitiesLog.add_Activity(userActivity); userActivity.firebase_Log(); if (tmUser.notNull() && tmUser.ID != Guid.Empty) { tmUser.UserActivities.add_Activity(userActivity); tmUser.event_User_Updated(); //tmUser.saveTmUser(); } } } return userActivity; }
public static ChangePassword_Result setUserPasswordResponse(this TM_UserData userData, TMUser tmUser, string currentPassword, string newPassword) { //var tmUser = tmAuthentication.currentUser; if (tmUser.notNull()) { if (tmUser.SecretData.PasswordHash == tmUser.createPasswordHash(currentPassword)) // check if current password matches provided value { var newPasswordHash = tmUser.createPasswordHash(newPassword); if (newPasswordHash != tmUser.SecretData.PasswordHash) // check that password are not repeated { tmUser.logUserActivity("User Password Change", "With previous password provided"); if (newPassword.Length < 8 || newPassword.Length > 256) { return(ValidatePasswordLength()); } //Password Complexity chechek if (!Regex.IsMatch(newPassword, ValidationRegex.PasswordComplexity)) { tmUser.logUserActivity("User Password Change", "Your password should be at least 8 characters long. It should have one uppercase and one lowercase letter, a number and a special character."); return(ValidatePasswordComplexity()); } var result = tmUser.setPasswordHash(newPasswordHash); if (result) { return new ChangePassword_Result { PasswordChanged = true, Message = "" } } ; return(new ChangePassword_Result { PasswordChanged = false, Message = TMConsts.DEFAULT_PASSWORD_CHANGE_ERROR_MESSAGE }); } tmUser.logUserActivity("User Password Change", "Current Password and New Password are equals"); return(CurrentPasswordAndNewPasswordAreEqualsResponse()); } tmUser.logUserActivity("User Password Change", "Current Password does not match provided value"); return(CurrentPasswordDoNotMatchResponse()); } return(new ChangePassword_Result()); }
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); }
public static Guid login(this TM_UserData userData, TMUser tmUser) { try { if (tmUser.notNull()) // there is a valid user { var userSession = tmUser.add_NewSession(); // create new session if (userSession.notNull()) { tmUser.logUserActivity("User Login", tmUser.UserName); // will save the user //SendEmails.SendEmailAboutUserToTM("Logged In", tmUser); return(userSession.SessionID); } } } catch (Exception ex) { ex.log("[TM_UserData][login]"); } return(Guid.Empty); }
public static Guid login(this TM_UserData userData, TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull()) // there is a valid user { if (sessionId != Guid.Empty) // there was a valid session set { tmUser.Stats.LastLogin = DateTime.Now; tmUser.Stats.LoginOk++; tmUser.SecretData.SessionID = sessionId; tmUser.logUserActivity("User Login", tmUser.UserName); // will save the user SendEmails.SendEmailAboutUserToTM("Logged In", tmUser); return(sessionId); } } } catch (Exception ex) { ex.log("[TM_UserData][login]"); } return(Guid.Empty); }
public static UserActivity logUserActivity(this TMUser tmUser, string action, string detail) { try { var userActivites = UserActivities.Current; if (userActivites.notNull()) { var userActivity = new UserActivity { Action = action, Detail = detail, Who = tmUser.notNull() ? tmUser.UserName :"******", When = DateTime.Now.ToFileTimeUtc(), IPAddress = HttpContextFactory.Context.ipAddress() }; return(userActivites.LogUserActivity(tmUser, userActivity)); } } catch (Exception ex) { ex.log("[logUserActivity]"); } return(null); }
public void User_ExtMet_FullName() { var firstName = "firstName".add_RandomLetters(5); var lastName = "lastName".add_RandomLetters(5); var tmUser_NoValues = new TMUser(); var tmUser_JustFirst = new TMUser() {FirstName = firstName}; var tmUser_JustLast = new TMUser() {LastName = lastName}; var tmUser_Both = new TMUser() {FirstName = firstName, LastName = lastName}; //Check that values are correctly set Assert.IsTrue(tmUser_NoValues.notNull() && tmUser_NoValues.FirstName.empty() && tmUser_NoValues.LastName.empty(), "tmUser_NoValues setup"); Assert.IsTrue(tmUser_JustFirst.notNull() && tmUser_JustFirst.FirstName.valid() && tmUser_JustFirst.LastName.empty(), "tmUser_JustFirst setup"); Assert.IsTrue(tmUser_JustLast.notNull() && tmUser_JustLast.FirstName.empty() && tmUser_JustLast.LastName.valid(), "tmUser_JustLast setup"); Assert.IsTrue(tmUser_Both.notNull() && tmUser_Both.FirstName.valid() && tmUser_Both.LastName.valid(), "tmUser_Both setup"); //Check that userName extension method is working ok var fullName_NoValues = tmUser_NoValues.fullName(); var fullName_JustFirst = tmUser_JustFirst.fullName(); var fullName_JustLast = tmUser_JustLast.fullName(); var fullName_Both = tmUser_Both.fullName(); Assert.AreEqual(fullName_NoValues , ""); Assert.AreEqual(fullName_JustFirst, firstName); Assert.AreEqual(fullName_JustLast , ""); Assert.AreEqual(fullName_Both , "{0} {1}".format(firstName, lastName)); //last check Assert.AreEqual("John Smith", new TMUser() { FirstName = "John", LastName = "Smith" }.fullName()); }
public static Guid login(this TM_UserData userData,TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull()) // there is a valid user { if (sessionId != Guid.Empty) // there was a valid session set { tmUser.Stats.LastLogin = DateTime.Now; tmUser.Stats.LoginOk++; tmUser.SecretData.SessionID = sessionId; tmUser.logUserActivity("User Login", tmUser.UserName); // will save the user SendEmails.SendEmailAboutUserToTM("Logged In", tmUser); return sessionId; } } } catch (Exception ex) { ex.log("[TM_UserData][login]"); } return Guid.Empty; }
public static bool logout(this TM_UserData userData, TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull() && sessionId.validSession()) { tmUser.logUserActivity("User Logout", tmUser.UserName); tmUser.remove_Session(sessionId); return true; } } catch (Exception ex) { ex.log("[TM_UserData] invalidateSession"); } return false; }
public static bool logout(this TM_UserData userData, TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull() && sessionId.validSession()) { tmUser.logUserActivity("User Logout", tmUser.UserName); userData.ActiveSessions.Remove(sessionId); SendEmails.SendEmailToTM("User Logout: {0}".format(tmUser.UserName), tmUser.toXml()); return true; } } catch (Exception ex) { ex.log("[TM_UserData] invalidateSession"); } return false; }
public static bool account_Enabled(this TMUser tmUser) { return(tmUser.notNull() && tmUser.AccountStatus.UserEnabled); }
public static List <UserTag> userTags(this TMUser tmUser) { return(tmUser.notNull() && tmUser.UserTags.notNull() ? tmUser.UserTags : new List <UserTag>()); }
public static Guid login(this TM_UserData userData,TMUser tmUser, string loginMethod = "Direct") { try { if (tmUser.notNull()) // there is a valid user { var userSession = tmUser.add_NewSession(loginMethod); // create new session if (userSession.notNull()) { tmUser.logUserActivity("User Login", tmUser.UserName); // will save the user //SendEmails.SendEmailAboutUserToTM("Logged In", tmUser); return userSession.SessionID; } } } catch (Exception ex) { ex.log("[TM_UserData] [login]"); } return Guid.Empty; }
public static ChangePassword_Result setUserPasswordResponse(this TM_UserData userData, TMUser tmUser, string currentPassword, string newPassword) { //var tmUser = tmAuthentication.currentUser; if (tmUser.notNull()) { if (tmUser.SecretData.PasswordHash == tmUser.createPasswordHash(currentPassword)) // check if current password matches provided value { var newPasswordHash = tmUser.createPasswordHash(newPassword); if (newPasswordHash != tmUser.SecretData.PasswordHash) // check that password are not repeated { tmUser.logUserActivity("User Password Change", "With previous password provided"); if (newPassword.Length < 8 || newPassword.Length > 256) { return ValidatePasswordLength(); } //Password Complexity chechek if (!Regex.IsMatch(newPassword, ValidationRegex.PasswordComplexity)) { tmUser.logUserActivity("User Password Change", "Your password should be at least 8 characters long. It should have one uppercase and one lowercase letter, a number and a special character."); return ValidatePasswordComplexity(); } var result = tmUser.setPasswordHash(newPasswordHash); if (result) return new ChangePassword_Result {PasswordChanged = true, Message = ""}; return new ChangePassword_Result { PasswordChanged = false, Message = TMConsts.DEFAULT_PASSWORD_CHANGE_ERROR_MESSAGE }; } tmUser.logUserActivity("User Password Change", "Current Password and New Password are equals"); return CurrentPasswordAndNewPasswordAreEqualsResponse(); } tmUser.logUserActivity("User Password Change", "Current Password does not match provided value"); return CurrentPasswordDoNotMatchResponse(); } return new ChangePassword_Result(); }
public static bool logout(this TM_UserData userData, TMUser tmUser, Guid sessionId) { try { if (tmUser.notNull() && sessionId.validSession()) { tmUser.logUserActivity("User Logout", tmUser.UserName); tmUser.remove_Session(sessionId); //tmUser.SecretData.SessionID = Guid.Empty; //userData.ActiveSessions.Remove(sessionId); //SendEmails.SendEmailAboutUserToTM("Logged Out", tmUser); return true; } } catch (Exception ex) { ex.log("[TM_UserData] invalidateSession"); } return false; }
public static bool setUserPassword(this TM_UserData userData, TMUser tmUser, string currentPassword, string newPassword) { //var tmUser = tmAuthentication.currentUser; if (tmUser.notNull()) { if (tmUser.SecretData.PasswordHash == tmUser.createPasswordHash(currentPassword)) // check if current password matches provided value { var newPasswordHash = tmUser.createPasswordHash(newPassword); if (newPasswordHash != tmUser.SecretData.PasswordHash) // check that password are not repeated { tmUser.logUserActivity("User Password Change", "With previous password provided"); return tmUser.setPasswordHash(newPasswordHash); } } } return false; }