Ejemplo n.º 1
0
        public async Task <IActionResult> ChangePassword(ChangePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.FirstOrDefault(u => u.Id.Equals(model.Id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                model.Id = user.Id;
            }

            var changePasswordResult = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);

            if (!changePasswordResult.Succeeded)
            {
                foreach (var error in changePasswordResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(View(model));
            }

            await _signInManager.RefreshSignInAsync(user);

            model.StatusMessage = "Your password has been changed.";

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit(AccountModel model, IFormFile file, bool isDeleteAvatar)
        {
            if (ModelState.IsValid)
            {
                KitNetUser user = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(model.Id));
                user.UserName    = model.UserName;
                user.DateBirdth  = model.DateBirdth;
                user.PhoneNumber = model.PhoneNumber;
                user.Email       = model.Email;

                if (file == null && isDeleteAvatar == false)
                {
                    model.Avatar = user.Avatar;
                    user.Avatar  = user.Avatar;
                }
                if (file != null)
                {
                    bool   isAvatar = !user.Avatar.Contains("default");
                    string path     = "/files/images/";

                    if (isAvatar)
                    {
                        path = user.Avatar;
                    }
                    else
                    {
                        path += user.Id + DateTime.Now.ToString("ddMMyyyyHHmmss") + Path.GetExtension(file.FileName);
                    }

                    using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
                    {
                        user.Avatar  = path;
                        model.Avatar = path;
                        await file.CopyToAsync(fileStream);
                    }
                }

                if (file == null && isDeleteAvatar)
                {
                    string fullPath = _appEnvironment.WebRootPath + user.Avatar;
                    System.IO.File.Delete(fullPath);
                    user.Avatar  = "/files/images/default_avatar.png";
                    model.Avatar = "/files/images/default_avatar.png";
                }

                model.StatusMessage = "Your profile has been updated";

                string currentUserId = _userManager.GetUserId(HttpContext.User);
            }

            _kitNetContext.SaveChanges();
            return(View(model));
        }
Ejemplo n.º 3
0
        private async Task LoadAsync(KitNetUser user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            Username = userName;

            Input = new InputModel
            {
                PhoneNumber = phoneNumber
            };
        }
Ejemplo n.º 4
0
        private async Task LoadAsync(KitNetUser user)
        {
            var email = await _userManager.GetEmailAsync(user);

            Email = email;

            Input = new InputModel
            {
                NewEmail = email,
            };

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Register(RegisterModel model, IFormFile avatar)
        {
            if (ModelState.IsValid)
            {
                KitNetUser user = new KitNetUser
                {
                    Email          = model.Email,
                    UserName       = model.UserName,
                    DateBirdth     = model.DateBirdth,
                    Avatar         = null,
                    EmailConfirmed = true
                };
                string path = "/files/images/";
                //добавляем аватар пользователю
                if (avatar != null)
                {
                    // путь к папке Files
                    path += user.Id + DateTime.Now.ToString("ddMMyyyyHHmmss") + Path.GetExtension(avatar.FileName);
                    // сохраняем файл в папку files/images в каталоге wwwroot
                    using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
                    {
                        await avatar.CopyToAsync(fileStream);
                    }
                }
                else
                {
                    path += "default_avatar.png";
                }
                user.Avatar = path;

                // добавляем пользователя
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    // установка куки
                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Account"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
            }
            return(View(model));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new KitNetUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Documents(string id)
        {
            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                id = user.Id;
            }

            ViewData["isOwner"] = user.Id.Equals(currentUserId);

            List <Document> documents = _kitNetContext.Documents.Where(d => d.UserId.Equals(id)).ToList();

            return(View(documents));
        }
Ejemplo n.º 8
0
        public IActionResult Index(AccountModel model)
        {
            if (ModelState.IsValid)
            {
                KitNetUser user = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(model.Id));
                user.UserName       = model.UserName;
                user.DateBirdth     = model.DateBirdth;
                user.PhoneNumber    = model.PhoneNumber;
                user.Avatar         = model.Avatar;
                user.Email          = model.Email;
                model.StatusMessage = "Your profile has been updated";

                string currentUserId = _userManager.GetUserId(HttpContext.User);

                ViewData["isOwner"] = user.Id.Equals(currentUserId);
            }

            _kitNetContext.SaveChanges();
            return(View(model));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> ChangePassword(string id)
        {
            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.FirstOrDefault(u => u.Id.Equals(id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                id = user.Id;
            }

            ViewData["isOwner"] = user.Id.Equals(currentUserId);

            ChangePasswordModel model = new ChangePasswordModel()
            {
                Id = user.Id,
            };

            return(View());
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> Index(string id)
        {
            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                id = user.Id;
            }

            ViewData["isOwner"] = user.Id.Equals(currentUserId);
            AccountModel model = new AccountModel()
            {
                Id          = id,
                UserName    = user.UserName,
                Avatar      = user.Avatar,
                DateBirdth  = user.DateBirdth,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber,
            };

            if (user.Posts != null)
            {
                if (user.Posts.Count > 0)
                {
                    model.Posts = user.Posts.OrderByDescending(p => p.DateTimePublish).ToList();
                }
                else
                {
                    model.Posts = new List <Post>();
                }
            }
            else
            {
                model.Posts = new List <Post>();
            }
            return(View(model));
        }
Ejemplo n.º 11
0
        public async Task <IActionResult> Friends(string id)
        {
            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                id = user.Id;
            }

            FriendsModel model = new FriendsModel()
            {
                User = user,
            };

            model.Friends = _kitNetContext.Friends
                            .Include(f => f.FriendUser)
                            .Where(f => f.UserId.Equals(user.Id)).ToList();

            return(View(model));
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Edit(string id)
        {
            string     currentUserId = _userManager.GetUserId(HttpContext.User);
            KitNetUser user          = _kitNetContext.Users.Include(u => u.Posts).FirstOrDefault(u => u.Id.Equals(id));

            if (user == null)
            {
                user = await _userManager.GetUserAsync(HttpContext.User);

                id = user.Id;
            }

            AccountModel model = new AccountModel()
            {
                Id          = id,
                UserName    = user.UserName,
                Avatar      = user.Avatar,
                DateBirdth  = user.DateBirdth,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber,
            };

            return(View(model));
        }
Ejemplo n.º 13
0
        public IActionResult Index()
        {
            List <Post> post = new List <Post>();

            string     userId = _userManager.GetUserId(User);
            KitNetUser user   = _kitNetContext.Users
                                .Include(u => u.Friends)
                                .ThenInclude(f => f.FriendUser)
                                .ThenInclude(fu => fu.Posts)
                                .ThenInclude(p => p.User)
                                .FirstOrDefault(u => u.Id.Equals(userId));

            if (user.Friends.Count > 0)
            {
                List <KitNetUser> friends = user.Friends.Select(f => f.FriendUser).ToList();

                friends.ForEach(f => post.AddRange(f.Posts));

                post = post.OrderByDescending(p => p.DateTimePublish).ToList();
            }


            return(View(post));
        }