Пример #1
0
        public IActionResult Record(Models.j04RecordViewModel v)
        {
            if (ModelState.IsValid)
            {
                BO.j04UserRole c = new BO.j04UserRole();
                if (v.Rec.pid > 0)
                {
                    c = Factory.j04UserRoleBL.Load(v.Rec.pid);
                }


                c.j04Name            = v.Rec.j04Name;
                c.j04PermissionValue = v.SelectedPermissions.Sum();
                c.j04IsClientRole    = v.Rec.j04IsClientRole;
                c.ValidUntil         = v.Toolbar.GetValidUntil(c);
                c.ValidFrom          = v.Toolbar.GetValidFrom(c);

                v.Rec.pid = Factory.j04UserRoleBL.Save(c);
                if (v.Rec.pid > 0)
                {
                    v.SetJavascript_CallOnLoad(v.Rec.pid);
                    return(View(v));
                }
            }



            v.Toolbar = new MyToolbarViewModel(v.Rec);
            this.Notify_RecNotSaved();
            return(View(v));
        }
Пример #2
0
        public ActionResult UserLogin([Bind] BO.LoggingUser lu, string returnurl)
        {
            _f.InhaleUserByLogin(lu.Login);
            if (_f.CurrentUser == null)
            {
                lu.Message = "Přihlášení se nezdařilo - pravděpodobně chybné heslo nebo jméno!";
                Write2Accesslog(lu);
                return(View(lu));
            }
            if (_f.CurrentUser.isclosed)
            {
                lu.Message = "Uživatelský účet je uzavřený pro přihlašování!";
                Write2Accesslog(lu);
                return(View(lu));
            }
            BO.j03User     cJ03 = _f.j03UserBL.LoadByLogin(lu.Login);
            BO.j04UserRole cJ04 = _f.j04UserRoleBL.Load(cJ03.j04ID);
            if (cJ04.j04IsClientRole && _f.p21LicenseBL.HasClientValidLicense(_f.CurrentUser.p28ID) == false)
            {
                lu.Message = "Subjekt, s kterým je svázaný váš osobní profil, nemá ani jednu platnou licenci!";
                Write2Accesslog(lu);
                return(View(lu));
            }
            if (lu.Password == "hash")
            {
                lu.Message = lu.Pwd2Hash("123456", cJ03);
                return(View(lu));
            }
            var ret = lu.VerifyHash(lu.Password, lu.Login, cJ03);

            if (ret.Flag == BO.ResultEnum.Failed)
            {
                lu.Message = "Ověření uživatele se nezdařilo - pravděpodobně chybné heslo nebo jméno!";
                Write2Accesslog(lu);
                return(View(lu));
            }

            //ověřený
            if (cJ03.j02Email == null)
            {
                cJ03.j02Email = "*****@*****.**";
            }
            var userClaims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, lu.Login),
                new Claim("access_token", "hovado1"),
                new Claim(ClaimTypes.Email, cJ03.j02Email)
            };

            var grandmaIdentity = new ClaimsIdentity(userClaims, "User Identity");

            var userPrincipal = new ClaimsPrincipal(new[] { grandmaIdentity });



            //prodloužit expiraci cookie na CookieExpiresInHours hodin
            var xx = new AuthenticationProperties()
            {
                IsPersistent = true, ExpiresUtc = DateTime.Now.AddHours(lu.CookieExpiresInHours)
            };

            HttpContext.SignInAsync(userPrincipal, xx);


            Write2Accesslog(lu);

            if (returnurl == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(Redirect(returnurl));
            }
        }