private UserPermissions VanillaGetUserPermissions(UInt64 UserId) { if (!File.Exists($"./data/{UserId}/permissions.json")) { CreateUserPermissions(UserId); } return(UserPermissions.Deserialize(UserId).Update(DefaultPermissions.Deserialize())); }
private RolePermissions VanillaGetRolePermissions(UInt64 RoleId) { if (!File.Exists($"./data/role-permissions/{RoleId}.json")) { CreateRolePermissions(RoleId); } return(RolePermissions.Deserialize(RoleId).Update(DefaultPermissions.Deserialize())); }
public static Boolean HasPermission(this DiscordMember member, String permission) { UserPermissions permissions = activeEngine.GetUserPermissions(member.Id); if (permissions.IsAdministrator) { return(true); } if (permissions[permission] == PermissionValue.Allowed) { return(true); } else if (permissions[permission] == PermissionValue.Denied) { return(false); } List <UInt64> roles = permissions.AssignedRoles.ToList(); roles.AddRange(from v in member.Roles where !roles.Contains(v.Id) select v.Id); while (roles.Count != 0) { RolePermissions rolePermissions = activeEngine.GetRolePermissions(roles[0]); if (rolePermissions.IsAdministrator || rolePermissions[permission] == PermissionValue.Allowed) { return(true); } else if (rolePermissions[permission] == PermissionValue.Denied) { return(false); } if (rolePermissions.Parent != 0) { roles.Add(rolePermissions.Parent); } roles.Remove(roles[0]); } DefaultPermissions defaults = DefaultPermissions.Deserialize(); if (defaults[permission] == PermissionValue.Allowed || defaults.IsAdministrator) { return(true); } return(false); }
private void VanillaSetUserAdministrator(UInt64 UserId, Boolean Administrator) { if (!File.Exists($"./data/{UserId}/permissions.json")) { CreateUserPermissions(UserId); } UserPermissions permissions = UserPermissions.Deserialize(UserId).Update(DefaultPermissions.Deserialize()); permissions.IsAdministrator = Administrator; UserPermissions.Serialize(permissions); }
private void VanillaSetRoleAdministrator(UInt64 RoleId, Boolean Administrator) { if (!File.Exists($"./data/role-permissions/{RoleId}.json")) { CreateRolePermissions(RoleId); } RolePermissions permissions = RolePermissions.Deserialize(RoleId).Update(DefaultPermissions.Deserialize()); permissions.IsAdministrator = Administrator; RolePermissions.Serialize(permissions); }
private void VanillaCreateUserPermissions(UInt64 UserId) { UserPermissions permissions = UserPermissions.Create(UserId, DefaultPermissions.Deserialize()); Directory.CreateDirectory($"./data/{UserId}"); if (!File.Exists($"./data/{UserId}/permissions.json")) { File.Create($"./data/{UserId}/permissions.json").Close(); } UserPermissions.Serialize(permissions); }
private void VanillaCreateRolePermissions(UInt64 RoleId) { RolePermissions permissions = RolePermissions.Create(RoleId, DefaultPermissions.Deserialize()); Directory.CreateDirectory($"./data/role-permissions"); if (!File.Exists($"./data/role-permissions/{RoleId}.json")) { File.Create($"./data/role-permissions/{RoleId}.json").Close(); } RolePermissions.Serialize(permissions); }
private static String[] ParseWildcards(String permission) { if (!permission.Contains('*')) { return(new[] { permission }); } if (permission[permission.IndexOf('*') - 1] != '.') { throw new ArgumentException("Invalid wildcard.", nameof(permission)); } DefaultPermissions permissions = DefaultPermissions.Deserialize(); return((from x in permissions.Permissions where x.Key.StartsWith(permission.Split('*')[0]) select x.Key).ToArray()); }
private void VanillaGrantUserPermissions(UInt64 UserId, String[] Permissions) { if (!File.Exists($"./data/{UserId}/permissions.json")) { CreateUserPermissions(UserId); } UserPermissions permissions = UserPermissions.Deserialize(UserId).Update(DefaultPermissions.Deserialize()); foreach (String v in Permissions) { foreach (String v1 in ParseWildcards(v)) { permissions[v1] = PermissionValue.Allowed; } } UserPermissions.Serialize(permissions); }
private void VanillaGrantRolePermissions(UInt64 RoleId, String[] Permissions) { if (!File.Exists($"./data/role-permissions/{RoleId}.json")) { CreateRolePermissions(RoleId); } RolePermissions permissions = RolePermissions.Deserialize(RoleId).Update(DefaultPermissions.Deserialize()); foreach (String v in Permissions) { foreach (String v1 in ParseWildcards(v)) { permissions[v1] = PermissionValue.Allowed; } } RolePermissions.Serialize(permissions); }
private void VanillaUpdateUserPermissions(UInt64 UserId) { UserPermissions permissions = UserPermissions.Deserialize(UserId); UserPermissions.Serialize(permissions.Update(DefaultPermissions.Deserialize())); }
private void VanillaUpdateRolePermissions(UInt64 RoleId) { RolePermissions permissions = RolePermissions.Deserialize(RoleId); RolePermissions.Serialize(permissions.Update(DefaultPermissions.Deserialize())); }
private static DefaultPermissions LoadDefaultPermissions() { DefaultPermissions permissions = DefaultPermissions.Deserialize(); return(permissions.ApplyOverrides(DefaultPermissionOverrides.Deserialize())); }