private string Register(DynamicDictionary _parameters) { string username = Request.Headers["Username"].First(); string email = Request.Headers["Email"].First(); string password = Request.Headers["Password"].First(); HydrantWikiManager hwm = new HydrantWikiManager(); User user = hwm.GetUser(UserSources.HydrantWiki, username); if (user == null) { user = new User { UserSource = UserSources.HydrantWiki, IsVerified = false, Active = true, DisplayName = username, EmailAddress = email, UserType = UserTypes.User, Username = username }; hwm.Persist(user); TGUserPassword userPassword = TGUserPassword.GetNew(user.Guid, username, password); hwm.Persist(userPassword); TGUserEmailValidation validation = new TGUserEmailValidation(user); hwm.Persist(validation); NameValueCollection nvc = new NameValueCollection { { "SystemUrl", Config.GetSettingValue("SystemUrl") }, { "ValidationText", validation.ValidationText } }; hwm.SendCannedEmail(user, CannedEmailNames.ValidateEmailAddress, nvc); return("{ \"Result\":\"Success\" }"); } return("{ \"Result\":\"UsernameNotAvailable\" }"); }
private bool HandleGet(DynamicDictionary _parameters) { string validationToken = _parameters["validationtoken"]; if (!string.IsNullOrEmpty(validationToken)) { HydrantWikiManager hwManager = new HydrantWikiManager(); TGUserEmailValidation uev = hwManager.GetTGUserEmailValidation(validationToken); if (uev != null && uev.ParentGuid != null) { User user = (User)hwManager.GetUser(uev.ParentGuid.Value); if (user != null) { user.IsVerified = true; hwManager.Persist(user); hwManager.Delete(uev); return(true); } else { //User not found. } } else { //Validation text not found in database } } else { //Validation text not supplied. } return(false); }
public BaseResponse CreateAccount(DynamicDictionary _parameters) { BaseResponse response = new BaseResponse(); HydrantWikiManager hwm = new HydrantWikiManager(); try { string json = Request.Body.ReadAsString(); Objects.CreateAccount account = JsonConvert.DeserializeObject <Objects.CreateAccount>(json); User user = hwm.GetUser(UserSources.HydrantWiki, account.Username); if (user == null) { user = hwm.GetUserByEmail(UserSources.HydrantWiki, account.Email); if (user == null) { user = new User(); user.Guid = Guid.NewGuid(); user.Active = true; user.DisplayName = account.Username; user.Username = account.Username; user.EmailAddress = account.Email; user.UserSource = UserSources.HydrantWiki; user.UserType = UserTypes.User; user.IsVerified = false; hwm.Persist(user); TGUserPassword userPassword = TGUserPassword.GetNew(user.Guid, user.Username, account.Password); hwm.Persist(userPassword); TGUserEmailValidation validation = new TGUserEmailValidation(user); hwm.Persist(validation); NameValueCollection nvc = new NameValueCollection { { "SystemUrl", Config.GetSettingValue("SystemUrl") }, { "ValidationText", validation.ValidationText } }; hwm.SendCannedEmail(user, CannedEmailNames.ValidateEmailAddress, nvc); hwm.LogInfo(user.Guid, "User created"); response.Success = true; response.Message = "Please check your email to finish activating your account"; return(response); } else { response.Success = false; response.Message = "Email already in use."; } } else { response.Success = false; response.Message = "Username already exists."; } hwm.LogWarning(Guid.Empty, response.Message); } catch (Exception ex) { response.Success = false; response.Message = "An error occurred"; response.Error = "An error occurred"; hwm.LogException(Guid.Empty, ex); } return(response); }
public Response ValidateEmail(DynamicDictionary _parameters) { const string success = @" <html> <head> </head> <body> <p>You have successfully validated your email with HydrantWiki.</p> <p><a href=""www.hydrantwiki.com"">HydrantWiki</a></p> </body> </html>"; const string failure = @" <html> <head> </head> <body> <p>Unable to validate your email with HydrantWiki.</p> <p><a href=""www.hydrantwiki.com"">HydrantWiki</a></p> </body> </html>"; string validationToken = _parameters["token"]; HydrantWikiManager hwManager = new HydrantWikiManager(); if (!string.IsNullOrEmpty(validationToken)) { TGUserEmailValidation uev = hwManager.GetTGUserEmailValidation(validationToken); if (uev != null && uev.ParentGuid != null) { User user = (User)hwManager.GetUser(uev.ParentGuid.Value); if (user != null) { user.IsVerified = true; hwManager.Persist(user); hwManager.Delete(uev); hwManager.LogInfo(user.Guid, string.Format("Validated email address ({0})", user.EmailAddress)); Response successResponse = Response.AsText(success); successResponse.ContentType = "text/html"; return(successResponse); } else { //User not found. hwManager.LogWarning(Guid.Empty, string.Format("User not found (Token:{0})", validationToken)); } } else { //Validation text not found in database hwManager.LogWarning(Guid.Empty, string.Format("Validated token not found ({0})", validationToken)); } } else { //Validation text not supplied. hwManager.LogWarning(Guid.Empty, "Validation token not supplied"); } Response failureResponse = Response.AsText(failure); failureResponse.ContentType = "text/html"; return(failureResponse); }
public void SendUserValidationEmail(TGUser _tgUser, TGUserEmailValidation _tgUserEmailValidation) { }
public void Persist(TGUserEmailValidation _emailValidation) { TGUserEmailValidationDAO dao = new TGUserEmailValidationDAO(MongoDB); dao.Persist(_emailValidation); }
public void Delete(TGUserEmailValidation _userEmailValidation) { TGUserEmailValidationDAO dao = new TGUserEmailValidationDAO(MongoDB); dao.Delete(_userEmailValidation); }