Esempio n. 1
0
        public ActionResult Settings()
        {
            if (Session["loggedUser"] != null)
            {
                SessionControl      sessionControl = (SessionControl)Session["loggedUser"];
                List <PrivacyRules> userRulesList  = new List <PrivacyRules>();
                UserAccount         userAccount    = null;

                using (var db = new BoardGamesDBEntities())
                {
                    Users user = db.Users.FirstOrDefault(u => u.Id == sessionControl.Id);
                    userAccount = new UserAccount()
                    {
                        Key      = user.Id,
                        Email    = user.Email,
                        Login    = user.Login,  // do not pass password - for safety
                        Name     = user.Name,
                        Surname  = user.Surname,
                        Sex      = user.Sex,
                        Birthday = user.Birthday,
                        Avatar   = user.Avatar
                    };

                    foreach (UsersPrivacyPolicy rule in db.UsersPrivacyPolicy.Where(p => p.UserId == user.Id).ToList())
                    {
                        userRulesList.Add(
                            new PrivacyRules()
                        {
                            RuleDescription = db.UsersPrivacyPolicyList.FirstOrDefault(p => p.Id == rule.RuleId).Description,
                            RuleLevel       = rule.RuleLevel
                        }
                            );
                    }
                }

                // Create final model
                UserProfileSettings userProfileSettings = new UserProfileSettings()
                {
                    UserInformation   = userAccount,
                    UserPrivacyPolicy = userRulesList
                };

                return(View(userProfileSettings));
            }

            // When user is not logged
            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 2
0
        public ActionResult Login(UserAccount user)
        {
            try
            {
                if (user.Login != null && user.Password != null)
                {
                    using (var db = new BoardGamesDBEntities())
                    {
                        Users usr = db.Users.FirstOrDefault(u => (user.Login == u.Login || user.Login == u.Email) &&
                                                            user.Password == u.Password);
                        if (usr != null)
                        {
                            // User logged
                            SessionControl sessionControl = new SessionControl()
                            {
                                Id    = usr.Id,
                                Email = usr.Email,
                                Login = usr.Login
                            };
                            Session["loggedUser"] = sessionControl;
                            return(RedirectToAction("Index", "Home"));
                        }
                        else
                        {
                            // User not recognized
                            ViewBag.AdditionalCommunicat = "Podano niepoprawny identyfikator lub hasło.";
                        }
                    }
                }
            }
            catch (Exception)
            {
                ViewBag.AdditionalCommunicat = "Wystąpiły problemy techniczne. Spróbuj ponownie.";
            }

            return(View());
        }
Esempio n. 3
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());
        }
Esempio n. 4
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());
        }
        public ActionResult UserProfile(string userNick)
        {
            try
            {
                UserProfile userProfile = new UserProfile();
                using (var db = new BoardGamesDBEntities())
                {
                    // set user whom someone visits
                    Users user = db.Users.FirstOrDefault(u => u.Login == userNick);
                    if (user == null)
                    {
                        // When user is not exist
                        return(RedirectToAction("Index", "Home"));
                    }

                    userProfile.UserWhomSomeoneVisits = new UserAccount()
                    {
                        Key      = user.Id,
                        Email    = user.Email,
                        Login    = user.Login,
                        Name     = user.Name,
                        Surname  = user.Surname,
                        Sex      = user.Sex,
                        Birthday = user.Birthday,
                        Avatar   = user.Avatar
                    };

                    // set privacy policy
                    List <PrivacyRules> userRulesList = new List <PrivacyRules>();
                    foreach (UsersPrivacyPolicy rule in db.UsersPrivacyPolicy.Where(p => p.UserId == user.Id).ToList())
                    {
                        userRulesList.Add(
                            new PrivacyRules()
                        {
                            RuleDescription = db.UsersPrivacyPolicyList.FirstOrDefault(p => p.Id == rule.RuleId).Description,
                            RuleLevel       = rule.RuleLevel
                        }
                            );
                    }
                    userProfile.UserPrivacyPolicy = userRulesList;

                    // set friend list
                    List <int> userFriendsIndex = new List <int>();
                    foreach (Friendship friend in db.Friendship.Where(f => f.Friend1 == user.Id || f.Friend2 == user.Id).ToList())
                    {
                        if (friend.Friend1 != user.Id)
                        {
                            userFriendsIndex.Add(friend.Friend1);
                        }
                        else
                        {
                            userFriendsIndex.Add(friend.Friend2);
                        }
                    }
                    userProfile.UserFriendsIndex = userFriendsIndex;
                }

                if (userProfile != null)
                {
                    return(View(userProfile));
                }
            }
            catch (Exception)
            { }

            return(RedirectToAction("Index", "Home"));
        }