private IEnumerable <GroupPermission> GetGroupPermissionByGroupAndPIds(AccessControlServiceContext context, string groupIdentifier, IEnumerable <long> permissionIds) { return(from cgp in context.GroupPermissions where cgp.GroupIdentification == groupIdentifier && permissionIds.Contains(cgp.PermissionId) select cgp); }
private GroupPermission GetGroupPermissionByGroupAndPId(AccessControlServiceContext context, string groupIdentifier, long permissionId) { return((from cgp in context.GroupPermissions where cgp.GroupIdentification == groupIdentifier && cgp.PermissionId == permissionId select cgp).SingleOrDefault()); }
private IEnumerable <Permission> GetChildPermissionsRange(AccessControlServiceContext context, IEnumerable <long> permissionIds) { List <Permission> permissions = new List <Permission>(); foreach (var id in permissionIds) { permissions.AddRange(GetChildPermissions(context, id)); } return(permissions); }
private void LinkPermissionInfos(AccessControlServiceContext context, GroupPermission groupPermission, ref List <PermissionInfo> ret) { try { if (!groupPermission.IsGranted) { return; } var gp = groupPermission; PermissionInfo p = null; PermissionInfo childP = null; Func <long, string> gpPermissionName = (long id) => (from permission in context.Permissions where permission.PermissionId == id select permission.PermissionName).FirstOrDefault(); while (gp != null) { if (p != null) { childP = p; } var permissionName = gpPermissionName(gp.PermissionId); p = ret.Any(pi => pi.Name == permissionName) ? ret.First(pi => pi.Name == permissionName) : new PermissionInfo { Name = permissionName, ParentPermission = null }; if (childP != null) { childP.ParentPermission = p; } if (!ret.Any(pi => pi.Name == p.Name)) { ret.Add(p); } var parentPermission = (from pp in context.Permissions.Include(x => x.ParentPermission) where pp.PermissionId == gp.PermissionId select pp.ParentPermission).SingleOrDefault(); if (parentPermission != null) { gp = (from gg in context.GroupPermissions where gg.PermissionId == parentPermission.PermissionId && gg.GroupIdentification == gp.GroupIdentification select gg).SingleOrDefault(); } else { gp = null; } } } catch (Exception e) { } }
private Permission GetParentPermission(AccessControlServiceContext context, Permission p) { return((from parentPermission in context.Permissions where parentPermission.PermissionId == p.ParentPermissionId select parentPermission).SingleOrDefault()); }
private IEnumerable <Permission> GetChildPermissions(AccessControlServiceContext context, long permissionId) { return(from cp in context.Permissions where cp.ParentPermissionId == permissionId select cp); }