// _____ _ // |_ _| |_ _ _ ___ ___ _ __ __ _ // | | | ' \| '_/ -_) -_) ' \/ _` |_ // |_| |_||_|_| \___\___|_|_|_\__,_(_) // // Threema iOS Client // Copyright (c) 2016-2020 Threema GmbH // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License, version 3, // as published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #import #import "ThreemaFramework.h" extern NSString * const MDM_CONFIGURATION_KEY; extern NSString * const MDM_FEEDBACK_KEY; extern NSString * const MDM_THREEMA_CONFIGURATION_KEY; extern NSString * const MDM_KEY_LICENSE_USERNAME; extern NSString * const MDM_KEY_LICENSE_PASSWORD; extern NSString * const MDM_KEY_NICKNAME; extern NSString * const MDM_KEY_LINKED_EMAIL; extern NSString * const MDM_KEY_LINKED_PHONE; extern NSString * const MDM_KEY_FIRST_NAME; extern NSString * const MDM_KEY_LAST_NAME; extern NSString * const MDM_KEY_CSI; extern NSString * const MDM_KEY_CATEGORY; extern NSString * const MDM_KEY_CONTACT_SYNC; extern NSString * const MDM_KEY_READONLY_PROFILE; extern NSString * const MDM_KEY_ID_BACKUP; extern NSString * const MDM_KEY_ID_BACKUP_PASSWORD; extern NSString * const MDM_KEY_BLOCK_UNKNOWN; extern NSString * const MDM_KEY_HIDE_INACTIVE_IDS; extern NSString * const MDM_KEY_DISABLE_SAVE_TO_GALLERY; extern NSString * const MDM_KEY_DISABLE_ADD_CONTACT; extern NSString * const MDM_KEY_DISABLE_EXPORT; extern NSString * const MDM_KEY_DISABLE_BACKUPS; extern NSString * const MDM_KEY_DISABLE_ID_EXPORT; extern NSString * const MDM_KEY_DISABLE_SYSTEM_BACKUPS; extern NSString * const MDM_KEY_DISABLE_MESSAGE_PREVIEW; extern NSString * const MDM_KEY_DISABLE_SEND_PROFILE_PICTURE; extern NSString * const MDM_KEY_DISABLE_CALLS; extern NSString * const MDM_KEY_DISABLE_VIDEO_CALLS; extern NSString * const MDM_KEY_DISABLE_CREATE_GROUP; extern NSString * const MDM_KEY_SKIP_WIZARD; extern NSString * const MDM_KEY_DISABLE_WEB; extern NSString * const MDM_KEY_WEB_HOSTS; extern NSString * const MDM_KEY_DISABLE_SHARE_MEDIA; extern NSString * const MDM_KEY_SAFE_ENABLE; extern NSString * const MDM_KEY_SAFE_PASSWORD; extern NSString * const MDM_KEY_SAFE_SERVER_URL; extern NSString * const MDM_KEY_SAFE_SERVER_USERNAME; extern NSString * const MDM_KEY_SAFE_SERVER_PASSWORD; extern NSString * const MDM_KEY_SAFE_RESTORE_ENABLE; extern NSString * const MDM_KEY_SAFE_RESTORE_ID; extern NSString * const MDM_KEY_SAFE_PASSWORD_PATTERN; extern NSString * const MDM_KEY_SAFE_PASSWORD_MESSAGE; extern NSString * const MDM_KEY_THREEMA_CONFIGURATION; extern NSString * const MDM_KEY_THREEMA_OVERRIDE; extern NSString * const MDM_KEY_THREEMA_PARAMS; typedef enum : int { CallsPolicyTypeAllowAll, CallsPolicyTypeDisableAll, CallsPolicyTypeDisableVideo, CallsPolicyTypeUnknown } CallsPolicyType; @interface MDMSetup : NSObject { BOOL isSetup; /// true means it is Threema Work BOOL isLicenseRequired; dispatch_queue_t queue; } @property (readonly, assign) NSString *idBackup; @property (readonly, assign) NSString *idBackupPassword; - (MDMSetup*) initWithSetup:(BOOL)setup; + (void)clearMdmCache; - (BOOL)disableBackups; - (BOOL)disableIdExport; - (BOOL)disableSystemBackups; - (BOOL)readonlyProfile; - (BOOL)disableAddContact; - (BOOL)disableSaveToGallery; - (BOOL)disableExport; - (BOOL)disableMessagePreview; - (BOOL)disableCalls; - (BOOL)disableVideoCalls; - (BOOL)disableWeb; - (NSString *)webHosts; - (BOOL)disableCreateGroup; - (BOOL)disableSendProfilePicture; - (BOOL)skipWizard; - (BOOL)disableShareMedia; - (BOOL)disableHideStaleContacts; - (NSNumber*)safeEnable; - (NSString*)safePassword; - (NSString*)safeServerUrl; - (NSString*)safeServerUsername; - (NSString*)safeServerPassword; - (NSString *)safePasswordPattern; - (NSString *)safePasswordMessage; - (BOOL)safeRestoreEnable; - (NSString*)safeRestoreId; - (BOOL)isSafeBackupDisable; - (BOOL)isSafeBackupForce; - (BOOL)isSafeBackupPasswordPreset; - (BOOL)isSafeBackupServerPreset; - (BOOL)isSafeRestoreDisable; - (BOOL)isSafeRestoreForce; - (BOOL)isSafeRestorePasswordPreset; - (BOOL)isSafeRestoreServerPreset; - (void)loadRenewableValues; - (void)loadLicenseInfo; - (void)loadIDCreationValues; - (BOOL)hasIDBackup; - (void)restoreIDBackupOnCompletion:(void(^)(void))onCompletion onError:(void(^)(NSError *error))onError; - (BOOL)isManaged; - (BOOL)existsMdmKey:(NSString*)mdmKey; - (void)applyThreemaMdm:(NSDictionary *)workData; - (void)deleteThreemaMdm; @end