TeaSpeak-Client/imports/shared-app/ui/modal/permission/ModalDefinitions.d.ts

179 lines
4.9 KiB
TypeScript

export declare type PermissionEditorTab = "groups-server" | "groups-channel" | "channel" | "client" | "client-channel";
export declare type PermissionEditorSubject = "groups-server" | "groups-channel" | "channel" | "client" | "client-channel" | "none";
export declare type GroupProperties = {
id: number;
type: "query" | "template" | "normal";
name: string;
iconId: number;
sortId: number;
saveDB: boolean;
needed_modify_power: number;
needed_member_add: number;
needed_member_remove: number;
};
export declare type GroupUpdateEntry = {
property: "name" | "icon" | "sort" | "save";
value: any;
};
export declare type ChannelInfo = {
id: number;
iconId: number;
name: string;
depth: number;
};
export interface PermissionModalEvents {
action_activate_tab: {
tab: PermissionEditorTab;
activeGroupId?: number;
activeChannelId?: number;
activeClientDatabaseId?: number;
};
action_select_group: {
target: "server" | "channel";
id: number;
};
action_select_channel: {
target: "channel" | "client-channel";
id: number;
};
action_select_client: {
target: "client" | "client-channel";
id: number | string | undefined;
};
action_set_permission_editor_subject: {
mode: PermissionEditorSubject | undefined;
groupId?: number;
channelId?: number;
clientDatabaseId?: number;
};
action_create_group: {
target: "server" | "channel";
sourceGroup?: number;
};
action_rename_group: {
target: "server" | "channel";
id: number | "selected";
newName: string;
};
action_rename_group_result: {
target: "server" | "channel";
id: number;
status: "success" | "error";
error?: string;
};
action_delete_group: {
target: "server" | "channel";
id: number | "selected";
mode: "ask" | "force";
};
action_delete_group_result: {
target: "server" | "channel";
id: number;
status: "success" | "error";
error?: string;
};
action_group_copy_permissions: {
target: "server" | "channel";
sourceGroup: number;
};
action_server_group_add_client: {
id: number;
client: number | string;
};
action_server_group_add_client_result: {
id: number;
client: number | string;
status: "success" | "error" | "no-permissions";
error?: string;
};
action_server_group_remove_client: {
id: number;
client: number;
};
action_server_group_remove_client_result: {
id: number;
client: number;
status: "success" | "error" | "no-permissions";
error?: string;
};
query_groups: {
target: "server" | "channel";
};
query_group_clients: {
id: number;
};
query_channels: {};
query_client_permissions: {};
query_client_info: {
client: number | string;
};
notify_channels: {
channels: ChannelInfo[];
};
notify_client_info: {
client: number | string;
state: "success" | "error" | "no-such-client" | "no-permission";
error?: string;
info?: {
name: string;
uniqueId: string;
databaseId: number;
};
failedPermission?: string;
};
notify_group_updated: {
target: "server" | "channel";
id: number;
properties: GroupUpdateEntry[];
};
notify_groups_created: {
target: "server" | "channel";
groups: GroupProperties[];
};
notify_groups_deleted: {
target: "server" | "channel";
groups: number[];
};
notify_group_clients: {
id: number;
status: "success" | "error" | "no-permissions";
error?: string;
clients?: {
name: string;
databaseId: number;
uniqueId: string;
}[];
};
notify_groups_reset: {};
notify_groups: {
target: "server" | "channel";
groups: GroupProperties[];
};
notify_client_permissions: {
permissionModifyPower: number;
serverGroupCreate: boolean;
channelGroupCreate: boolean;
serverGroupModifyPower: number;
channelGroupModifyPower: number;
modifyQueryGroups: boolean;
modifyTemplateGroups: boolean;
serverGroupMemberAddPower: number;
serverGroupMemberRemovePower: number;
serverGroupPermissionList: boolean;
channelGroupPermissionList: boolean;
channelPermissionList: boolean;
clientPermissionList: boolean;
clientChannelPermissionList: boolean;
};
notify_client_list_toggled: {
visible: boolean;
};
notify_channel_updated: {
id: number;
property: "name" | "icon";
value: any;
};
notify_initial_rendered: {};
notify_destroy: {};
}