Beispiel #1
0
        public ActionResult ChangePassword(ChangePassword changePassword)
        {
            if (Session["loggedUser"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            try
            {
                if (changePassword.CurrentPassword != null && changePassword.NewPassword != null && changePassword.NewPasswordCopy != null)
                {
                    if (changePassword.NewPassword == changePassword.NewPasswordCopy)
                    {
                        using (var db = new BoardGamesDBEntities())
                        {
                            SessionControl sessionControl = (SessionControl)Session["loggedUser"];
                            Users          user           = db.Users.FirstOrDefault(u => u.Id == sessionControl.Id);

                            if (changePassword.CurrentPassword == user.Password)
                            {
                                using (var transaction = db.Database.BeginTransaction())
                                {
                                    try
                                    {
                                        Users currentUser = db.Users.FirstOrDefault(u => u.Login == user.Login && u.Password == user.Password);
                                        if (currentUser != null)
                                        {
                                            currentUser.Password = changePassword.NewPassword;
                                            db.SaveChanges();
                                            transaction.Commit();

                                            // Password has been changed
                                            Session.Clear();
                                            return(View("~/Views/Account/ChangePasswordSuccess.cshtml"));
                                        }
                                        else
                                        {
                                            ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
                                        }
                                    }
                                    catch (Exception)
                                    {
                                        transaction.Rollback();
                                        ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
                                    }
                                }
                            }
                            else
                            {
                                ViewBag.AdditionalCommunicat = "Podano nieprawidłowe hasło.";
                            }
                        }
                    }
                    else
                    {
                        ViewBag.AdditionalCommunicat = "Powtórz poprawnie nowe hasło.";
                    }
                }
            }
            catch (Exception)
            {
                ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
            }

            return(View());
        }
Beispiel #2
0
        public ActionResult Registration(UserAccount user)
        {
            try
            {
                if (user.Email != null && user.Password != null && user.Login != null &&
                    user.Name != null && user.Surname != null && user.Birthday != null && user.RegulationsAreAccepted == true)
                {
                    using (var db = new BoardGamesDBEntities())
                    {
                        Users usr = null;
                        usr = db.Users.FirstOrDefault(u => user.Login == u.Login);
                        if (usr != null)
                        {
                            // Login is not available
                            ViewBag.AdditionalCommunicat = "Wybrana nazwa użytkownika jest zajęta.";
                            return(View());
                        }
                        usr = db.Users.FirstOrDefault(u => user.Email == u.Email);
                        if (usr != null)
                        {
                            // Email is not available
                            ViewBag.AdditionalCommunicat = "Podany adres e-mail jest już używany przez kogoś innego.";
                            return(View());
                        }

                        // Add new user
                        Users newUser = new Users()
                        {
                            Email         = user.Email,
                            Login         = user.Login,
                            Password      = user.Password,
                            Name          = user.Name,
                            Surname       = user.Surname,
                            Sex           = user.Sex,
                            Birthday      = user.Birthday,
                            SecurityLevel = 1,
                            Avatar        = null
                        };

                        using (var transaction = db.Database.BeginTransaction())
                        {
                            try
                            {
                                db.Users.Add(newUser);
                                db.SaveChanges();
                                transaction.Commit();
                            }
                            catch (Exception)
                            {
                                transaction.Rollback();
                                ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
                            }
                        }

                        // Add default privacy policy for new user
                        using (var transaction = db.Database.BeginTransaction())
                        {
                            try
                            {
                                usr = db.Users.FirstOrDefault(u => user.Login == u.Login);
                                if (usr != null)
                                {
                                    int privacyPolicyListCount = db.UsersPrivacyPolicyList.Count();
                                    for (int i = 1; i <= privacyPolicyListCount; i++)
                                    {
                                        UsersPrivacyPolicy defaultPolicy = new UsersPrivacyPolicy()
                                        {
                                            UserId    = usr.Id,
                                            RuleId    = i,
                                            RuleLevel = 2
                                        };

                                        db.UsersPrivacyPolicy.Add(defaultPolicy);
                                    }
                                    db.SaveChanges();
                                    transaction.Commit();
                                }

                                return(View("~/Views/Account/RegistrationSuccess.cshtml"));
                            }
                            catch (Exception)
                            {
                                transaction.Rollback();
                                ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
            }

            return(View());
        }