Beispiel #1
0
        public async Task <IActionResult> Edit(int id, string message = "", string messageType = "")
        {
            var model      = new AccountVM();
            var entityInDb = _db.Accounts.Find(id);

            if (entityInDb != null)
            {
                model           = _mapper.Map <AccountVM>(entityInDb);
                model.AccountId = entityInDb.AccountId;
                model.FirstName = entityInDb.FirstName;
                model.LastName  = entityInDb.LastName;
                model.Email     = entityInDb.Email;
                model.CreatedAt = entityInDb.CreatedAt.ToShortDateString();
                // get existing file
                if (entityInDb.UserImageUrl != null)
                {
                    var filePath = await _azureBlobService.GetUriByNameAsync(entityInDb.UserImageUrl, "assets");

                    model.UserImageUrl = filePath.AbsoluteUri;
                }
                var accountPermissions = _db.AccountPermissions.Where(ap => ap.AccountId == entityInDb.AccountId).ToList();

                if (accountPermissions.Count > 0)
                {
                    model.PermissionIds = accountPermissions.Select(ap => ap.PermissionId.ToString()).ToList();
                }
            }
            // set values to be put into the _Layout page
            if (id == 0)
            {
                ViewData["PageHeader"] = "Account Create";
            }
            else
            {
                ViewData["PageHeader"] = "Account Edit";
            }
            // SET values for message
            if (message != null)
            {
                ViewData["Message"]     = message;
                ViewData["MessageType"] = messageType.ToLower();
            }
            model.SelectList = this.GenerateSelectLists();
            return(View(model));
        }
        public async Task <IActionResult> Index(string username, string password)
        {
            var accountFromService = _auth.Authenticate(username, password);

            if (accountFromService == null)
            {
                return(RedirectToAction("Index", new { message = "Your details were incorrect." }));
            }
            var userClaims = new List <Claim>()
            {
                new Claim("FirstName", accountFromService.FirstName),
                new Claim("LastName", accountFromService.LastName),
                new Claim("Email", accountFromService.Email)
            };

            if (accountFromService.UserImageUrl != null)
            {
                var fileUrl = await _azureBlobService.GetUriByNameAsync(accountFromService.UserImageUrl, "assets");

                Set("UserImage", fileUrl.AbsoluteUri, null);
            }
            //var accountClaims = new List<Claim>()
            //    {
            //        new Claim(ClaimTypes.Name, "Michael"),
            //        new Claim(ClaimTypes.Email, "*****@*****.**")
            //    };
            var permissionsClaims = new List <Claim>();

            accountFromService.Permissions.ForEach(p =>
            {
                var claim = new Claim(ClaimTypes.Role, p.Name);
                permissionsClaims.Add(claim);
            });
            var identity = new ClaimsIdentity(userClaims, "User");
            //var account = new ClaimsIdentity(accountClaims, "Account");
            var roles = new ClaimsIdentity(permissionsClaims, "Roles");

            var accountPrincipal = new ClaimsPrincipal(new[] { identity, roles });

            // set cookies here
            HttpContext.SignInAsync(accountPrincipal);
            return(RedirectToAction("Index", "Home"));
        }
        public string GetUri(string fileName)
        {
            var url = _azureBlobService.GetUriByNameAsync(fileName, imageContainerName);

            return(url.Result.AbsoluteUri);
        }
Beispiel #4
0
        public string GetUri(string fileName)
        {
            var url = _azureBlobService.GetUriByNameAsync(fileName, "shopping-app-categories");

            return(url.Result.AbsoluteUri);
        }