179 lines
4.9 KiB
TypeScript
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: {};
|
|
}
|