public static string GetPermissions(string PermissionName, string PermissionStrings) { string permissions = ""; List <PermissionString> permissionstrings = JsonSerializer.Deserialize <List <PermissionString> >(PermissionStrings); PermissionString permissionstring = permissionstrings.Where(item => item.PermissionName == PermissionName).FirstOrDefault(); if (permissionstring != null) { permissions = permissionstring.Permissions; } return(permissions); }
public static List <string> GetPermissionList(this string packedPermissions) { var usersPermissions = packedPermissions.UnpackPermissionsFromString().ToArray(); List <string> PermissionList = new List <string>(); foreach (var PermissionString in usersPermissions) { PermissionList.Add(PermissionString.ToString()); } return(PermissionList); }
public List <Permission> DecodePermissions(string Permissions, int SiteId, string EntityName, int EntityId) { List <Role> roles = Roles.GetRoles(SiteId).ToList(); List <Permission> permissions = new List <Permission>(); string perm = ""; string permissionname; string permissionstring; foreach (string PermissionString in Permissions.Split(new char[] { '{' }, StringSplitOptions.RemoveEmptyEntries)) { permissionname = PermissionString.Substring(0, PermissionString.IndexOf(":")); permissionstring = PermissionString.Replace(permissionname + ":", "").Replace("}", ""); foreach (string Perm in permissionstring.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { perm = Perm; Permission permission = new Permission(); permission.SiteId = SiteId; permission.EntityName = EntityName; permission.EntityId = EntityId; permission.PermissionName = permissionname; permission.RoleId = null; permission.UserId = null; permission.IsAuthorized = true; if (perm.StartsWith("!")) { // deny permission perm.Replace("!", ""); permission.IsAuthorized = false; } if (perm.StartsWith("[") && perm.EndsWith("]")) { // user id perm = perm.Replace("[", "").Replace("]", ""); permission.UserId = int.Parse(perm); } else { // role name Role role = roles.Where(item => item.Name == perm).SingleOrDefault(); if (role != null) { permission.RoleId = role.RoleId; } } permissions.Add(permission); } } return(permissions); }