Esempio n. 1
0
        public CheckUserAccountModel CheckUserAccount(string UserName, string Password)
        {
            CheckUserAccountModel data = new CheckUserAccountModel();
            //int fildLogIn =Convert.ToInt32(_context.SystemSettings.Where(x => x.Name == "FildLogInNumber").FirstOrDefault().Value);
            var user = _context.Users.Where(x => x.Email.ToLower() == UserName.ToLower() && x.IsDeleted != true).Include(f => f.fk_UserRoleMap).ThenInclude(g => g.UserRole).ThenInclude(p => p.fk_UserRolePermMap).ThenInclude(h => h.Permission).FirstOrDefault();

            if (user != null)
            {
                using (var algorithm = MD5.Create()) //or MD5 SHA256 etc.
                {
                    var hashedBytes = algorithm.ComputeHash(Encoding.UTF8.GetBytes(Password));

                    Password = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower();
                }


                if (user.Password == Password)
                {
                    //user.FildLogIn = 0;
                    _context.Update(user);
                    _context.SaveChanges();

                    data.user = _mapper.Map <User, UserViewModel>(user);
                }
                else
                {
                    data.user         = null;
                    data.ErrorMessage = "Admin.Please wait for account activation";
                }
            }
            else
            {
                data.user         = null;
                data.ErrorMessage = "Admin.UserNotFound";
            }
            return(data);
        }
Esempio n. 2
0
        public IActionResult UserLogin([FromBody] UserLoginView model)
        {
            this.ViewData["ReturnUrl"] = model.returnUrl;
            User currentUser = null;

            SwalMessage swal = new SwalMessage();

            CheckUserAccountModel data = _userRepository.CheckUserAccount(model.Email, model.Password);

            currentUser = data.user != null?_userRepository.GetById(data.user.Id) : null;

            UserViewModel _UserModel = _mapper.Map <User, UserViewModel>(currentUser);

            if (currentUser != null)
            {
                if (currentUser.Activation == true)
                {
                    var userrole = _mapper.Map <User, UserViewModel>(currentUser);

                    if (userrole.UserRoleName.FirstOrDefault() == "Register User")
                    {
                        var claims = new List <Claim>
                        {
                            new Claim("UserId", currentUser.Id.ToString()),
                            new Claim("CustomCache", "0")
                        };
                        ClaimsIdentity  userIdentity = new ClaimsIdentity(claims, "login");
                        ClaimsPrincipal principal    = new ClaimsPrincipal(userIdentity);
                        HttpContext.SignInAsync(principal);
                        HttpContext.User = principal;

                        _UserModel = _mapper.Map <User, UserViewModel>(currentUser);
                    }
                    else if (userrole.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser)
                    {
                        var claims = new List <Claim>
                        {
                            new Claim("UserId", currentUser.Id.ToString()),
                            new Claim("CustomCache", "0")
                        };
                        ClaimsIdentity  userIdentity = new ClaimsIdentity(claims, "login");
                        ClaimsPrincipal principal    = new ClaimsPrincipal(userIdentity);
                        HttpContext.SignInAsync(principal);
                        HttpContext.User = principal;

                        _UserModel = _mapper.Map <User, UserViewModel>(currentUser);
                    }
                    else
                    {
                        swal.MessageType = false;
                        swal.Header      = _localization.GetString("web.Failed");
                        swal.Message     = _localization.GetString("web.Go to Admin Login");
                        swal.SwalType    = "error";
                        return(Json(swal));
                    }
                }
                else
                {
                    swal.MessageType = false;
                    swal.Header      = _localization.GetString("web.Failed");
                    swal.Message     = _localization.GetString("web.InactiveAccount");
                    swal.SwalType    = "error";
                    return(Json(swal));
                }
            }
            else
            {
                ////ModelState.AddModelError("Login Failed.Please enter correct credentials")
                //ModelState.AddModelError("", data.ErrorMessage);
                swal.MessageType = false;
                swal.Header      = _localization.GetString("web.Failed");
                swal.Message     = _localization.GetString("web.Incorrect credentials");
                swal.SwalType    = "error";
                return(Json(swal));
            }

            if (_UserModel != null)
            {
                if (_UserModel.Id > 0)
                {
                    if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.User)
                    {
                        if (!string.IsNullOrEmpty(model.returnUrl))
                        {
                            if (Url.IsLocalUrl(model.returnUrl))
                            {
                                swal.Url         = model.returnUrl;
                                swal.MessageType = true;
                                return(Json(swal));
                            }
                        }
                        // return Redirect("/" + model.returnUrl);
                    }
                    else if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser)
                    {
                        if (!string.IsNullOrEmpty(model.returnUrl))
                        {
                            if (Url.IsLocalUrl(model.returnUrl))
                            {
                                swal.Url         = model.returnUrl;
                                swal.MessageType = true;
                                return(Json(swal));
                            }
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(model.returnUrl))
            {
                if (Url.IsLocalUrl(model.returnUrl))
                {
                    return(Redirect(model.returnUrl));
                }
            }
            swal.MessageType = true;
            return(Json(swal));
        }