25 lines
No EOL
1.3 KiB
TypeScript
25 lines
No EOL
1.3 KiB
TypeScript
import {ChannelEditableProperty} from "tc-shared/ui/modal/channel-edit/Definitions";
|
|
import {ChannelEntry, ChannelProperties} from "tc-shared/tree/Channel";
|
|
import {ChannelTree} from "tc-shared/tree/ChannelTree";
|
|
import {PermissionManager} from "tc-shared/permission/PermissionManager";
|
|
import PermissionType from "tc-shared/permission/PermissionType";
|
|
|
|
export const ChannelPropertyValidators: {[T in keyof ChannelEditableProperty]?: (
|
|
currentProperties: ChannelProperties,
|
|
originalProperties: ChannelProperties,
|
|
channel: ChannelEntry | undefined,
|
|
parent: ChannelEntry | undefined,
|
|
permissions: PermissionManager,
|
|
channelTree: ChannelTree
|
|
) => boolean} = {};
|
|
|
|
ChannelPropertyValidators["name"] = properties => properties.channel_name.length > 0 && properties.channel_name.length <= 30;
|
|
ChannelPropertyValidators["phoneticName"] = properties => properties.channel_name_phonetic.length >= 0 && properties.channel_name_phonetic.length <= 30;
|
|
ChannelPropertyValidators["password"] = (currentProperties, originalProperties, _channel, _parent, permissions) => {
|
|
if(!currentProperties.channel_flag_password) {
|
|
if(permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD).granted(1)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
} |