Exemple #1
0
        public IActionResult LoginPage()
        {
            var user  = _userService.GetCurrentUserInfo();
            var model = new UserIdentLog
            {
                UserGuid  = user.Id,
                LoginData = user.LoginData
            };
            var loginData = (from person in _context.Person.Where(u => u.UserId == user.Id)
                             join employee in _context.Employee on person.Id equals employee.PersonId
                             join empprofile in _context.UserProfiles on employee.Id equals empprofile.UserId
                             join profile in _context.Profiles on empprofile.ProfileId equals profile.Id
                             select new
            {
                PersonId = person.Id,
                PersonFIO = person.FIO,
                EmployeeId = employee.Id,
                ProfileId = profile.Id,
                ProfileName = profile.Caption
            }).ToList();

            if (loginData.Count > 1)
            {
                model.PersonId   = loginData.First().PersonId;
                model.EmployeeId = loginData.First().EmployeeId;
                model.ProfileId  = loginData.First().ProfileId;

                ViewBag.EmpList = loginData
                                  .GroupBy(t => t.EmployeeId)
                                  .Select(g => g.First())
                                  .Select(c => new SelectListItem
                {
                    Value = c.EmployeeId.ToString(),
                    Text  = c.PersonFIO
                });

                ViewBag.ProfList = loginData
                                   .GroupBy(t => t.ProfileId)
                                   .Select(g => g.First())
                                   .Select(c => new SelectListItem
                {
                    Value = c.ProfileId.ToString(),
                    Text  = c.ProfileName
                });
                return(View(model));
            }
            else if (loginData.Count == 1)
            {
                model.PersonId   = loginData.First().PersonId;
                model.EmployeeId = loginData.First().EmployeeId;
                model.ProfileId  = loginData.First().ProfileId;

                return(SetLogin(model));
            }
            else
            {
                ModelState.AddModelError("EmployeeId", "За Вами не закріплено співробітника або профіль, зверніться до адміністратора");
                return(View(model));
            }
        }
Exemple #2
0
        private IActionResult SetLogin(UserIdentLog model)
        {
            var userInfo = _userService.GetCurrentUserInfo();

            userInfo.ProfileId = model.ProfileId;
            userInfo.UserId    = model.EmployeeId;
            userInfo.PersonId  = model.PersonId;

            _userService.UpdateUserInfo(userInfo);     // теперь начитка прав происходит сама

            return(RedirectToAction("Index", "Home", new { area = "" }));
        }
Exemple #3
0
        private IActionResult SetLogin(UserIdentLog model)
        {
            var userInfo = _userService.GetCurrentUserInfo();

            userInfo.ProfileId = model.ProfileId;
            userInfo.UserId    = model.EmployeeId;
            userInfo.PersonId  = model.PersonId;
            userInfo.LoginData = model.LoginData;


            _userService.UpdateUserInfo(userInfo);

            return(RedirectToAction("Index", "Home"));
        }
Exemple #4
0
        public IActionResult LoginPage(UserIdentLog model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var emplProf = (from person in _context.Person.Where(u => u.Id == model.PersonId)
                            join employee in _context.Employee on person.Id equals employee.PersonId
                            join empprofile in _context.UserProfiles on employee.Id equals empprofile.UserId
                            select new { PersonId = person.Id, EmployeeId = employee.Id, empprofile.ProfileId })
                           .FirstOrDefault(x => x.EmployeeId == model.EmployeeId && x.ProfileId == model.ProfileId);

            if (emplProf == null)
            {
                ModelState.AddModelError("EmployeeId", "За обраним співробітником даний профіль не закріплений, зверніться до адміністратора");
                return(View(model));
            }

            return(SetLogin(model));
        }