示例#1
0
        public ActionResult ForgotPassword(ForgotPasswordViewModel model)
        {
            EmailHelper eh = new EmailHelper();

            if (ModelState.IsValid)
            {
                //verify email address in database
                using (var dbContext = new SWE4713Entities())
                {
                    User usr = (from s in dbContext.Users
                                where s.Email == model.Email
                                select s).FirstOrDefault <User>();
                    if (usr != null)
                    {
                        string code = GeneratePasswordToken(usr.UserId);
                        // send email with return url and code
                        var        callbackUrl = Url.Action("ResetPassword", "Account", new { userId = usr.UserId, code = code }, protocol: Request.Url.Scheme);
                        EmailModel em          = new EmailModel();
                        em.SendFrom  = "*****@*****.**";
                        em.SendTo    = usr.Email;
                        em.Subject   = "Forgot Password Reset";
                        em.EmailBody = "<br>" + "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>";
                        eh.SendEmail(em);
                    }
                }
                ViewBag.Message = "Password Reset Email Sent Successfully.";
                return(View("ForgotPasswordConfirmation", "Account"));
            }
            else
            {
                // If we got this far, something failed, redisplay form
                return(View("ForgotPasswordConfirmation", model));
            }
        }
示例#2
0
        public ActionResult GetAccountById(int id)
        {
            var dbContext = new SWE4713Entities();
            var account   = dbContext.Users.Where(x => x.UserId == id);;

            if (account != null)
            {
                AdminViewModel model = new AdminViewModel();

                foreach (var item in account)
                {
                    model.UserName    = item.UserName;
                    model.UserType    = item.UserType;
                    model.FirstName   = item.FirstName;
                    model.LastName    = item.LastName;
                    model.Email       = item.Email;
                    model.DOB         = Convert.ToDateTime(item.DOB);
                    model.Street      = item.Street;
                    model.City        = item.City;
                    model.State       = item.State;
                    model.Zip         = item.Zip;
                    model.Active      = item.Active;
                    model.Attempts    = Convert.ToInt32(item.Attempts);
                    model.DateCreated = item.DateCreated;
                    model.DateUpdated = Convert.ToDateTime(item.DateUpdated);
                }

                return(PartialView("_GridEditPartial", model));
            }

            return(View());
        }
示例#3
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var dbContext = new SWE4713Entities())
                {
                    User db = new User();

                    db.FirstName  = model.FirstName;
                    db.LastName   = model.LastName;
                    db.DOB        = model.DOB;
                    db.Street     = model.Street;
                    db.City       = model.City;
                    db.State      = model.State;
                    db.Zip        = model.Zip;
                    db.UserTypeId = 3;                                                                                                                                                       //default set to Accountant
                    db.UserName   = model.FirstName.Substring(0, 1).ToLower() + model.LastName.ToLower() + DateTime.Now.Month.ToString("00") + DateTime.Now.Year.ToString().Substring(2, 2); //needs to save it as [firstinitial][lastname][month][year]
                    //db.Picture = Convert.ToByte(model.Picture);
                    db.Email       = model.Email;
                    db.DateCreated = DateTime.Now;
                    db.Active      = true;
                    db.Password    = Hasher.HashString(model.Password);

                    dbContext.Users.Add(db);
                    dbContext.SaveChanges();
                }
                ViewBag.Message = "User Details Saved";
                return(View("Register"));
            }
            else
            {
                return(View("Register", model));
            }
        }
示例#4
0
        private bool ResetLoginFailure(string email)
        {
            bool result = false;

            using (var dbContext = new SWE4713Entities())
            {
                var usr = dbContext.Users.SingleOrDefault(b => b.Email == email);
                if (usr != null)
                {
                    usr.Attempts = 0;
                    dbContext.SaveChanges();
                    result = true;
                }
            }
            return(result);
        }
示例#5
0
 public User IsValidUser(LoginViewModel model)
 {
     using (var dbContext = new SWE4713Entities())
     {
         //Retireving the user details from DB based on username and password enetered by user.
         User user = dbContext.Users.Where(query => query.UserName.Equals(model.Username) && query.Password.Equals(Hasher.HashString(model.Password))).SingleOrDefault();
         //If user is present, then true is returned.
         if (user == null)
         {
             return(null);
         }
         //If user is not present false is returned.
         else
         {
             return(user);
         }
     }
 }
示例#6
0
        private bool IncrementLoginFailure(string username)
        {
            bool result = false;

            using (var dbContext = new SWE4713Entities())
            {
                var usr = dbContext.Users.SingleOrDefault(b => b.UserName == username);
                if (usr != null)
                {
                    var loginAttempts = usr.Attempts;
                    if (loginAttempts < 3)
                    {
                        usr.Attempts += 1;
                        dbContext.SaveChanges();
                        result = true;
                    }
                }
            }
            return(result);
        }
示例#7
0
        public ActionResult ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                using (var dbContext = new SWE4713Entities())
                {
                    Models.User userdb = (from s in dbContext.Users
                                          where s.Email == model.Email
                                          select s).FirstOrDefault <User>();
                    var oldPassword = userdb.Password;

                    PasswordHistory phistory = new PasswordHistory();

                    phistory.OldPassword = oldPassword;
                    phistory.DateCreated = DateTime.Now;
                    phistory.Active      = true;
                    phistory.UserId      = userdb.UserId;
                    dbContext.PasswordHistories.Add(phistory);
                    dbContext.SaveChanges();

                    var usr = dbContext.Users.SingleOrDefault(b => b.Email == model.Email);
                    if (usr != null)
                    {
                        usr.Attempts    = 0;
                        usr.DateUpdated = DateTime.Now;
                        dbContext.SaveChanges();
                    }

                    ResetLoginFailure(model.Email);
                }
                return(View("ResetPasswordConfirmation", "Account"));
            }
            else
            {
                return(View("ResetPasswordConfirmation", model));
            }
        }
示例#8
0
        // GET: Admin
        public ActionResult Index(int?pageNumber)
        {
            var            dbContext = new SWE4713Entities();
            AdminViewModel model     = new AdminViewModel();

            model.PageNumber = (pageNumber == null ? 1 : Convert.ToInt32(pageNumber));
            model.PageSize   = 4;

            List <User> accounts = dbContext.Users.ToList();

            if (accounts != null)
            {
                model.AccountList = accounts.OrderBy(x => x.UserId)
                                    .Skip(model.PageSize * (model.PageNumber - 1))
                                    .Take(model.PageSize).ToList();

                model.TotalCount = accounts.Count();
                var page = (model.TotalCount / model.PageSize) -
                           (model.TotalCount % model.PageSize == 0 ? 1 : 0);
                model.PagerCount = page + 1;
            }

            return(View(model));
        }