Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
 public void SendUserValidationEmail(TGUser _tgUser, TGUserEmailValidation _tgUserEmailValidation)
 {
 }
Example #6
0
        public void Persist(TGUserEmailValidation _emailValidation)
        {
            TGUserEmailValidationDAO dao = new TGUserEmailValidationDAO(MongoDB);

            dao.Persist(_emailValidation);
        }
Example #7
0
        public void Delete(TGUserEmailValidation _userEmailValidation)
        {
            TGUserEmailValidationDAO dao = new TGUserEmailValidationDAO(MongoDB);

            dao.Delete(_userEmailValidation);
        }