Beispiel #1
0
 public void Send_Test_Email()
 {
     var stmpServerOnline = Mail.isMailServerOnline(sendEmails.Smtp_Server);
     Assert.IsTrue(stmpServerOnline);
     var sendResult = new SendEmails().send(to, subject, message);
     Assert.IsTrue(sendResult);
 }
Beispiel #2
0
        public static Thread email_NewUser_Welcome(this TMUser tmUser)
        {
            var email     = tmUser.EMail;
            var userName  = tmUser.UserName;
            var serverUrl = SendEmails.TM_Server_URL;

            if (email.notValid())
            {
                "[SendNewUserEmails] can't sent email because email value is not set".error();
            }
            else if (userName.notValid())
            {
                "[SendNewUserEmails] can't sent email because userName value is not set".error();
            }
            else if (serverUrl.notValid())
            {
                "[SendNewUserEmails] can't sent email because server Url value is not set".error();
            }
            else
            {
                var subject     = TMConsts.EMAIL_SUBJECT_NEW_USER_WELCOME;
                var fullName    = tmUser.fullName();
                var userMessage = TMConsts.EMAIL_BODY_NEW_USER_WELCOME.format(fullName, tmUser.UserName, serverUrl);
                return(SendEmails.SendEmailToEmail(email, subject, userMessage));
            }
            return(null);
        }
Beispiel #3
0
 public void SetUp()
 {
     var secretData = tmXmlDatabase.UserData.SecretData;
     sendEmails = new SendEmails();
     Assert.IsNotNull(sendEmails);
     Assert.IsNull(sendEmails.Smtp_Password , "In UnitTests SendEmails SMTP password should not be set");
     Assert.IsTrue(sendEmails.serverNotConfigured()   , "In UnitTests serverNotConfigured should be in offline mode");
 }
Beispiel #4
0
 public void SetUp()
 {
     var secretData = tmXmlDatabase.UserData.SecretData;
     sendEmails = new SendEmails(secretData.SMTP_Server, secretData.SMTP_UserName, secretData.SMTP_Password);
     Assert.IsNotNull(sendEmails);
     if(sendEmails.Smtp_Password.notValid())
         Assert.Ignore("SmtpServer_Password is not set, so ignoring test");
     if(tmXmlDatabase.ServerOnline.isFalse())
     Assert.Ignore("We are offline, so ignoring test");
 }
Beispiel #5
0
        public Test_SendEmail_SMTP()
        {
            tmQAConfig = TM_QA_Config.Current;
            if (tmQAConfig.isNull())
                Assert.Ignore("TM_QA_ConfigFile.Current was null (so no SMTP config values");

            userData.SecretData.SMTP_Server        = tmQAConfig.SMTP_Server;
            userData.SecretData.SMTP_UserName      = tmQAConfig.SMTP_UserName;
            userData.SecretData.SMTP_Password      = tmQAConfig.SMTP_Password;
            tmConfig.TMSecurity.Default_AdminEmail = tmQAConfig.Default_AdminEmail;

            sendEmails = new SendEmails();
        }
        public static bool      sendPasswordReminder(this string email)
        {
            var tmUser = email.tmUser_FromEmail();

            if (tmUser.isNull())
            {
                return(false);
            }
            var resetToken = email.passwordResetToken_getHash();

            if (resetToken != Guid.Empty)
            {
                return(SendEmails.SendPasswordReminderToUser(tmUser, resetToken));
            }
            return(false);
        }
Beispiel #7
0
        public TM_Engine performHealthCheck()
        {
            // these are a catastrofic errors and TM cannot recover from it
            if (TM_Xml_Database.Current.isNull())   // this is a catastrofic even and TM cannot recover from it
            {
                "[Fatal Error] TM_Xml_Database.Current was null".error();
                HttpContextFactory.Server.Transfer(TMConsts.PATH_HTML_PAGE_UNAVAILABLE);
            }
            else if (TMConfig.Current.isNull())
            {
                "[Fatal Error] TMConfig.Current was null".error();
                HttpContextFactory.Server.Transfer(TMConsts.PATH_HTML_PAGE_UNAVAILABLE);
            }

            SendEmails.mapTMServerUrl();        // find a better place to put these one-off requests
            return(this);
        }
        public static ResetPassword_Result sendPasswordReminder_Response(this string email)
        {
            var tmConfig = TMConfig.Current;
            var response = new ResetPassword_Result();
            var tmUser   = email.tmUser_FromEmail();

            //Email does not exist
            if (tmUser.isNull())
            {
                response.PasswordReseted = false;
                response.Message         = TMConfig.Current.showDetailedErrorMessages()
                                    ? tmConfig.TMErrorMessages.Email_Does_Not_Exist_ErrorMessage
                                    : tmConfig.TMErrorMessages.General_PasswordReset_Error_Message;
                return(response);
            }
            //Account Expired
            if (tmUser.account_Expired())
            {
                response.PasswordReseted = false;
                response.Message         = TMConfig.Current.showDetailedErrorMessages()
                                   ? tmConfig.TMErrorMessages.AccountExpiredErrorMessage
                                   : tmConfig.TMErrorMessages.General_PasswordReset_Error_Message;
                return(response);
            }
            //Account Disabled
            if (!tmUser.account_Enabled())
            {
                response.PasswordReseted = false;
                response.Message         = TMConfig.Current.showDetailedErrorMessages()
                                   ? tmConfig.TMErrorMessages.AccountDisabledErrorMessage
                                   : tmConfig.TMErrorMessages.General_PasswordReset_Error_Message;
                return(response);
            }
            var resetToken = email.passwordResetToken_getHash();

            if (resetToken != Guid.Empty)
            {
                var result = SendEmails.SendPasswordReminderToUser(tmUser, resetToken);
                response.PasswordReseted = result;
                response.Message         = string.Empty;
                return(response);
            }
            return(new ResetPassword_Result());
        }
Beispiel #9
0
 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.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);
 }
Beispiel #10
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)
        {
            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  = Encoder.XmlEncode(username),
                FirstName = Encoder.XmlEncode(firstname),
                LastName  = Encoder.XmlEncode(lastname),
                Company   = Encoder.XmlEncode(company),
                Country   = Encoder.XmlEncode(country),
                State     = Encoder.XmlEncode(state),
                GroupID   = groupId,
                Title     = Encoder.XmlEncode(title),
                EMail     = Encoder.XmlEncode(email) ?? "",
                UserTags  = userTags
            };

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

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

            return(userId);
        }
Beispiel #11
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, int groupId)
        {
            var userId = Guid.NewGuid().hash();  //10000000.random();//10.randomNumbers().toInt();

            if (userId < 0)                      // find a .net that does this (maybe called 'invert')
            {
                userId = -userId;
            }
            "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  = Encoder.XmlEncode(username),
                FirstName = Encoder.XmlEncode(firstname),
                LastName  = Encoder.XmlEncode(lastname),
                Company   = Encoder.XmlEncode(company),
                Country   = Encoder.XmlEncode(country),
                State     = Encoder.XmlEncode(state),
                GroupID   = groupId,
                Title     = Encoder.XmlEncode(title),
                EMail     = Encoder.XmlEncode(email) ?? "",
            };

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

            //save it
            SendEmails.SendNewUserEmails("New user created: {0}".format(tmUser.UserName), tmUser);
            tmUser.saveTmUser();

            return(userId);
        }
Beispiel #12
0
 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);
 }
Beispiel #13
0
 public static bool serverNotConfigured(this SendEmails sendEmails)
 {
     return(sendEmails.Smtp_Server.notValid() ||
            sendEmails.Smtp_UserName.notValid() ||
            sendEmails.Smtp_Password.notValid());
 }
Beispiel #14
0
        public void SetUp()
        {
            SendEmails.Disable_EmailEngine = false;
            //            SendEmails.Send_Emails_As_Sync = true;

            sendEmails = new SendEmails();
            Assert.IsNotNull(sendEmails);
            Assert.IsEmpty  (sendEmails.Smtp_Password           , "In UnitTests SendEmails SMTP password should not be set");
            Assert.IsTrue   (sendEmails.serverNotConfigured()   , "In UnitTests serverNotConfigured should be in offline mode");
        }