public string GetPermissions(CompanyRoleVm role) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(@"<select class='permissions' multiple='multiple' style='width:100%' id='{0}'>", role.Id); foreach (var item in role.Permissions) { var selected = item.Selected ? "selected" : ""; sb.AppendFormat(@"<option value = '{0}' {1} > {2} </option>", item.Value, selected, item.Text); } sb.AppendFormat(@"</select>"); return(sb.ToString()); }
public ActionResult EditRole(Guid?id) { try { var role = RoleManager.Roles.ToList().FirstOrDefault(x => x.Id == id.ToSafeString()); var model = new CompanyRoleVm() { Id = role.Id, Name = role.Name, Description = role.Description, IsDeletable = role.IsDeletable, IsEditable = role.IsEditable }; return(PartialView("~/Views/Company/RoleAdd.cshtml", model)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ChangeRolePermission(CompanyRoleVm model) { try { var mgr = new AspNetRoleClaimsManager(); if (model.Action == "add") { mgr.Insert(new AspNetRoleClaims() { Id = Guid.NewGuid(), RoleID = model.Id, ClaimID = Guid.Parse(model.PermissionId), CreatedAt = DateTime.Now }); } else if (model.Action == "remove") { var roleClaim = mgr.GetAll().FirstOrDefault(x => x.RoleID == model.Id && x.ClaimID.ToString() == model.PermissionId); if (roleClaim != null) { mgr.Delete(roleClaim); } } mgr.SaveChanges(); return(Json(new JsonResponse() { IsSucess = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult SaveRole(CompanyRoleVm role) { try { //var mgr = new RoleManager<WFPRole>(new RoleStore<WFPRole>(CurrentContextFromOwin)); var roleToUpdate = RoleManager.FindById(role.Id); if (roleToUpdate == null) { roleToUpdate = new WFPRole(); roleToUpdate.Id = Guid.NewGuid().ToString(); roleToUpdate.Name = role.Name; roleToUpdate.Description = role.Description; roleToUpdate.IsDeletable = true; roleToUpdate.IsEditable = true; RoleManager.Create(roleToUpdate); } else { roleToUpdate.Name = role.Name; roleToUpdate.Description = role.Description; RoleManager.Update(roleToUpdate); } Db.SaveChanges(); return(Json(new JsonResponse() { IsSucess = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult InitializeRoles([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel) { var mgr = new AspNetClaimsManager(); List <CompanyRoleVm> roles = new List <CompanyRoleVm>(); foreach (var role in RoleManager.Roles) { var roleVm = new CompanyRoleVm() { Id = role.Id, Name = role.Name, Description = role.Description, IsDeletable = role.IsDeletable, IsEditable = role.IsEditable }; List <SelectItemPair> permissions = new List <SelectItemPair>(); foreach (var claim in mgr.GetAll("RoleClaims").ToList()) { var permission = new SelectItemPair() { Text = claim.ClaimValue, Value = claim.Id.ToString() }; var roleClaimRoleIds = claim.RoleClaims.Select(x => x.RoleID); // ctx.RoleClaims.Where(x => x.RoleID == roleVm.Id).Select(x => x.ClaimID); if (roleClaimRoleIds.Contains(roleVm.Id)) { permission.Selected = true; } permissions.Add(permission); } roleVm.Permissions = permissions; roles.Add(roleVm); } var totalCount = roles.Count(); #region Filtering // Apply filters for searching if (requestModel.Search.Value != string.Empty) { var value = requestModel.Search.Value.Trim(); roles = roles.Where(p => p.Name.Contains(value)).ToList(); } var filteredCount = roles.Count(); #endregion Filtering #region Sorting // Sorting var sortedColumns = requestModel.Columns.GetSortedColumns(); var orderByString = String.Empty; if (sortedColumns.Count() > 0) { foreach (var column in sortedColumns) { if (column.Data == "Name") { roles = column.SortDirection.ToString() == "Ascendant" ? roles.OrderBy(x => x.Name).ToList() : roles.OrderByDescending(x => x.Name).ToList(); } if (column.Data == "Description") { roles = column.SortDirection.ToString() == "Ascendant" ? roles.OrderBy(x => x.Description).ToList() : roles.OrderByDescending(x => x.Description).ToList(); } } orderByString = "Ordered"; } if (orderByString == string.Empty) { roles = roles.OrderBy(x => x.Name).ToList(); } #endregion Sorting // Paging if (requestModel.Length != -1) { roles = roles.Skip(requestModel.Start).Take(requestModel.Length).ToList(); } var result = roles. ToList() .Select(x => new { Id = x.Id.ToString(), Name = x.Name, Description = x.Description, Permissions = GetPermissions(x), Actions = GetActionsRoles(x.Id), }); return(Json(new DataTablesResponse (requestModel.Draw, result, filteredCount, totalCount), JsonRequestBehavior.AllowGet)); }