public IActionResult RoleAccess(int?clientId, int?roleId) { if (clientId == null || roleId == null) { return(NotFound()); } var role = _roleMager.Roles.Include("RoleClaims").Where(r => r.Id.Equals(roleId)).FirstOrDefault(); // List<ClientProperty> clientProperties = new List<ClientProperty> (); var roleClaims = role.RoleClaims.ToList(); // List<SelectListItem> accessList= var clientApp = _configDbContext.Clients.Include("Properties").Where(c => c.Id.Equals((int)clientId)).FirstOrDefault(); List <SelectListItem> accessList = clientApp.Properties.Select(p => new SelectListItem { Text = p.Key, Value = p.Value, Selected = false }).ToList(); accessList = GetSelectedItems(accessList, roleClaims); // if (clientApp.Properties != null) { clientProperties.AddRange (clientApp.Properties); } ModuleSelectListViewModel moduleSelectListViewModel = new ModuleSelectListViewModel { roleId = (int)roleId, SelectedModules = accessList }; ViewBag.systemName = clientApp.ClientName; // ViewBag.moduleList = clientProperties; ViewBag.moduleList = moduleSelectListViewModel; var claimLis = role.RoleClaims.ToList(); ViewBag.clientId = clientId; ViewBag.systemName = clientApp.ClientName; ViewBag.roleName = role.Name; ViewBag.roleId = roleId; //TODO: Implement Realistic Implementation return(View(claimLis)); }
public IActionResult CreateRoleAccess(ModuleSelectListViewModel selectedAccess, int?clientId, int?roleId) { if (clientId == null || roleId == null) { return(NotFound()); } // var role = _roleMager.Roles.Include ("RoleClaims").Where (r => r.Id.Equals (roleId)).FirstOrDefault (); var role = _appDbContext.Roles.Include("RoleClaims").Where(r => r.Id.Equals(roleId)).FirstOrDefault(); // var role=_roleMager("RoleClaims").FindByIdAsync(((int)roleId).ToString()); if (role.RoleClaims != null) { role.RoleClaims.Clear(); } if (selectedAccess.SelectedModules != null) { foreach (var item in selectedAccess.SelectedModules) { if (item.Selected) { role.RoleClaims.Add(new ApplicationRoleClaim { Name = item.Text, ClaimType = "access", ClaimValue = item.Value }); // _roleMager.AddClaimAsync(role,new Claim("access",item.Value )); } } _appDbContext.Roles.Update(role); var result = _appDbContext.SaveChanges(); // var result= _roleMager.UpdateAsync (role).Result; } ViewBag.clientId = clientId; ViewBag.roleId = roleId; return(RedirectToAction("RoleAccess", new { clientId = clientId, roleId = roleId })); }