ComunicWeb/assets/js/typings/ServerConfig.d.ts
2021-12-30 10:23:47 +01:00

62 lines
1.7 KiB
TypeScript

/**
* Server configuration typings
*
* @author Pierre Hubert
*/
declare interface PasswordPolicy {
allow_email_in_password: boolean,
allow_name_in_password: boolean,
min_password_length: number,
min_number_upper_case_letters: number,
min_number_lower_case_letters: number,
min_number_digits: number,
min_number_special_characters: number,
min_categories_presence: number,
}
declare interface DataConservationPolicySettings {
min_inactive_account_lifetime: number,
min_notification_lifetime: number,
min_comments_lifetime: number,
min_posts_lifetime: number,
min_conversation_messages_lifetime: number,
min_likes_lifetime: number
}
declare interface ConversationPolicy {
min_message_len: number,
max_message_len: number,
allowed_files_type: String[],
files_max_size: number,
writing_event_interval: number,
writing_event_lifetime: number,
}
declare interface AccountInformationPolicy {
min_first_name_length: number,
max_first_name_length: number,
min_last_name_length: number,
max_last_name_length: number,
max_location_length: number,
}
declare interface Banner {
enabled: boolean,
expire ?: number,
nature: "information"|"warning"|"success",
message: Map<string, string>,
link ?: string,
}
declare interface StaticServerConfig {
terms_url: string,
privacy_policy_url: string,
play_store_url: string,
android_direct_download_url: string,
password_policy: PasswordPolicy,
data_conservation_policy: DataConservationPolicySettings,
conversations_policy: ConversationPolicy,
account_info_policy: AccountInformationPolicy,
banner?: Banner,
}