TeaWeb/shared/js/ui/modal/permission/SenselessPermissions.ts

71 lines
3.5 KiB
TypeScript

import PermissionType from "../../../permission/PermissionType";
export const senseless_server_group_permissions: PermissionType[] = [
PermissionType.B_CHANNEL_GROUP_INHERITANCE_END
];
const filter = (text, ignore_type) => Object.keys(PermissionType)
.filter(e => e.toLowerCase().substr(ignore_type ? 1 : 0).startsWith(text)).map(e => PermissionType[e]);
export const senseless_channel_group_permissions: PermissionType[] = [
//Not sensefull to assign serverinstance permission to channel groups
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_serverinstance_")).map(e => PermissionType[e]),
PermissionType.B_SERVERQUERY_LOGIN,
//Not sensefull to assign virtual server permission to channel groups
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_virtualserver") && e.toLowerCase() === "b_virtualserver_channel_permission_list").map(e => PermissionType[e]),
//Not sensefull to require some playlist permissions
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("i_playlist")).map(e => PermissionType[e]),
PermissionType.B_PLAYLIST_CREATE,
//Not sensefull to require some playlist permissions
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("i_client_music")).map(e => PermissionType[e]),
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_client_music")).map(e => PermissionType[e]),
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("i_server_group")).map(e => PermissionType[e]),
PermissionType.I_MAX_ICON_FILESIZE,
PermissionType.I_MAX_PLAYLIST_SIZE,
PermissionType.I_MAX_PLAYLISTS,
PermissionType.I_CLIENT_KICK_FROM_SERVER_POWER, //Why should channel groups kick clients from server. Yes there are cases, but not the usual once
PermissionType.I_CLIENT_NEEDED_KICK_FROM_SERVER_POWER,
PermissionType.I_CLIENT_BAN_POWER, //Why should channel groups ban clients from server. Yes there are cases, but not the usual once
PermissionType.I_CLIENT_NEEDED_BAN_POWER,
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_client_complain")).map(e => PermissionType[e]),
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_client_ban")).map(e => PermissionType[e]),
PermissionType.I_CLIENT_BAN_MAX_BANTIME,
PermissionType.B_CLIENT_SERVER_TEXTMESSAGE_SEND,
...Object.keys(PermissionType).filter(e => e.toLowerCase().startsWith("b_client_query")).map(e => PermissionType[e]),
PermissionType.B_CLIENT_CREATE_MODIFY_SERVERQUERY_LOGIN,
PermissionType.B_CLIENT_DELETE_DBPROPERTIES,
PermissionType.B_CLIENT_MODIFY_DBPROPERTIES
];
export const senseless_channel_permissions: PermissionType[] = [
...senseless_channel_group_permissions, //Powers and needed powers are not inherited here. We "hide" all powers
...filter("_channel_create", true),
...filter("_client", true),
...filter("_channel_group", true),
...filter("_group", true),
...filter("b_channel_", false),
...Object.keys(PermissionType).filter(e => {
e = e.toLowerCase();
return e.indexOf("_power") > 0 && e.indexOf("_needed_") == -1;
}).map(e => PermissionType[e]),
PermissionType.B_ICON_MANAGE,
PermissionType.B_CLIENT_USE_PRIORITY_SPEAKER,
PermissionType.B_CLIENT_USE_PRIORITY_SPEAKER,
PermissionType.B_CHANNEL_IGNORE_DESCRIPTION_VIEW_POWER
];
export const senseless_client_permissions: PermissionType[] = [];
export const senseless_client_channel_permissions: PermissionType[] = [];