Exemplo n.º 1
0
        public IActionResult InviteUserToFamily(int userId, int familyId, int invited_by)
        {
            Invite invite = new Invite()
            {
                FamilyId  = familyId,
                Invitee   = userId,
                InvitedBy = new User()
                {
                    Id = invited_by
                }
            };

            if (userDAL.GetUser(userId).FamilyId == 0)
            {
                if (userDAL.InviteUserToFamily(invite))
                {
                    //todo: Email user when they receive an invite
                    emailProvider.Invite(userDAL.GetUser(userId), userDAL.GetUser(invited_by), familyDAL.GetFamily(familyId));
                    return(Ok());
                }
                else
                {
                    return(StatusCode(500));
                }
            }
            else
            {
                return(StatusCode(500));
            }
        }
Exemplo n.º 2
0
        public ActionResult NewUser(NewUserViewModel model)
        {
            if (IsAuthenticated)
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (ModelState.IsValid)
            {
                var currentUser = usersDAL.GetUser(model.Username);
                if (currentUser != null)
                {
                    ModelState.AddModelError("Username", "This username is unavailable.");
                    return(View("newUser", model));
                }
                var hashProvider   = new HashProvider();
                var hashedPassword = hashProvider.HashPassword(model.Password);
                var salt           = hashProvider.SaltValue;

                var newUser = new UserModel
                {
                    Username = model.Username,
                    Password = hashedPassword,
                    Salt     = salt
                };

                usersDAL.RegisterNewUser(newUser);

                LogUserIn(model.Username);
                return(RedirectToAction("Index", "Home"));
            }
            return(View("NewUser", model));
        }
        public ActionResult ReadingList()
        {
            UserModel user = usersDAL.GetUser(base.CurrentUser);
            List <ReadingListModel> readingList = readingListDAL.GetReadingList(user.UserID);
            MyEchoBooksViewModel    model       = new MyEchoBooksViewModel();

            model.ReadingList = readingList;
            model.CurrentUser = user;
            return(View("ReadingList", model));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Signs the user in and saves their email in session.
        /// </summary>
        /// <param name="email"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public bool SignIn(string email, string password)
        {
            var user         = userDAL.GetUser(email);
            var hashProvider = new HashProvider();

            if (user != null && hashProvider.VerifyPasswordMatch(user.Password, password, user.Salt))
            {
                Session.SetString(SessionKey, user.Email);
                return(true);
            }

            return(false);
        }
Exemplo n.º 5
0
        // GET: Forum


        public ActionResult ViewPosts(int threadID)
        {
            List <PostModel>     list   = new List <PostModel>();
            PostResultsViewModel model  = new PostResultsViewModel();
            ThreadModel          thread = forumDAL.GetThreadByThreadID(threadID);

            model.SelectedThread = thread;
            list = forumDAL.GetAllPosts(threadID);
            model.AllPostsInThread = list;
            UserModel user    = usersDAL.GetUser(base.CurrentUser);
            PostModel newPost = new PostModel();

            model.NewPost          = newPost;
            model.NewPost.UserID   = user.UserID;
            model.NewPost.ThreadID = thread.ThreadID;
            return(View("ViewPosts", model));
        }
Exemplo n.º 6
0
        public IActionResult Register(RegisterViewModel rvm)
        {
            if (ModelState.IsValid && !userDAL.DoesEmailAlreadyExist(rvm.Email))
            {
                // Register them as a new user (and set default role in db schema)
                // When a user registeres they need to be given a role. If you don't need anything special
                // just give them "User".
                if (authProvider.Register(rvm.DisplayName, rvm.Email, rvm.Password, role: "User") == false)
                {
                    return(RedirectToAction("Error", "Home"));
                }

                emailProvider.Welcome(userDAL.GetUser(rvm.Email));

                // Redirect the user where you want them to go after registering
                return(RedirectToAction("Index", "Home"));
            }

            return(View(rvm));
        }
Exemplo n.º 7
0
        public List <WebsiteRequest> GetNewWebsiteRequests()
        {
            List <WebsiteRequest> output = new List <WebsiteRequest>();

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand    cmd    = new SqlCommand(SQL_Get_New_Websites, conn);
                    SqlDataReader reader = cmd.ExecuteReader();


                    while (reader.Read())
                    {
                        WebsiteRequest wr = new WebsiteRequest();
                        wr.Id      = Convert.ToInt32(reader["id"]);
                        wr.BaseURL = Convert.ToString(reader["base_url"]);
                        wr.FullURL = Convert.ToString(reader["full_url"]);
                        wr.User    = new User()
                        {
                            Id = Convert.ToInt32(reader["user_id"])
                        };

                        output.Add(wr);
                    }
                    reader.Close();

                    foreach (WebsiteRequest wr in output)
                    {
                        wr.User = userDAL.GetUser(wr.User.Id, conn);
                    }
                }
            }
            catch
            {
                output = null;
            }

            return(output);
        }
Exemplo n.º 8
0
        //GET: Detail of chosen book
        public ActionResult BookDetail(int bookID)
        {
            ReadingListModel list = new ReadingListModel();
            BookModel        book = new BookModel();

            book = booksDAL.GetBooksById(bookID);
            UserModel           user   = usersDAL.GetUser(base.CurrentUser);
            ReviewModel         review = reviewDAL.GetReview(bookID);
            BookDetailViewModel model  = new BookDetailViewModel();

            model.CurrentBook   = book;
            model.CurrentReview = review;
            model.CurrentUser   = user;
            if (model.CurrentUser != null)
            {
                list.UserID        = user.UserID;
                list.BookID        = bookID;
                model.IsBookInList = rlDAL.BookAlreadyInList(list);
            }
            return(View("BookDetail", model));
        }
Exemplo n.º 9
0
        public IActionResult ChangeMemberRole(int userIdToChange)
        {
            if (authProvider.IsLoggedIn)
            {
                User currentUser = authProvider.GetCurrentUser();
                if (currentUser.FamilyRole == "Leader")
                {
                    ChangeMemberRoleViewModel viewModel = new ChangeMemberRoleViewModel();
                    viewModel.userToChange = usersDAL.GetUser(userIdToChange);

                    return(View(viewModel));
                }
                else
                {
                    return(View("NotAllowed"));
                }
            }
            else
            {
                return(View("Login", "Account"));
            }
        }
Exemplo n.º 10
0
        public SuccessfulLoginResponse ApiSignIn(string email, string password)
        {
            SuccessfulLoginResponse output = null;
            var user         = usersDAL.GetUser(email);
            var hashProvider = new HashProvider();

            if (user != null && hashProvider.VerifyPasswordMatch(user.Password, password, user.Salt))
            {
                if (IsUserSignedIn(user))
                {
                    RemoveUser(user);
                }

                string newAccessToken = GenerateAccessToken();
                loggedInUsers.Add(newAccessToken, user);
                output = new SuccessfulLoginResponse(user, newAccessToken);
            }

            return(output);
        }