class IOSConfigProfile::RestrictionsPayload
Public Class Methods
available_payloads()
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 11 def self.available_payloads # key => [english description, default, (options)] { "allowAssistant" => ["Allow Siri", true], "allowAssistantWhileLocked" => ["Allow Siri while device is locked", true], "allowCamera" => ["Allow camera usage", true], "allowCloudBackup" => ["Allow iCloud", true], "allowCloudKeychainSync" => ["Allow cloud keychain synchronization", true], "allowDiagnosticSubmission" => ["Allow automatic submission of diagnostic reports to Apple", true], "allowFingerprintForUnlock" => ["Allow Touch ID (fingerprint) to unlock device", true], "allowGlobalBackgroundFetchWhenRoaming" => ["Allow global background fetch activity when device is roaming", true], "allowInAppPurchases" => ["Allow in-app purchasing", true], "allowLockScreenControlCenter" => ["Allow Control Center on the Lock screen", true], "allowLockScreenNotificationView" => ["Allow Notifications view in Notification Center on the lock screen", true], "allowLockScreenTodayView" => ["Allow Today view in Notification Center on the lock screen", true], "allowOpenFromManagedToUnmanaged" => ["Allow documents in managed apps and accounts to be opened in unmanaged apps and accounts", true], "allowOpenFromUnmanagedToManaged" => ["Allow documents in unmanaged apps and accounts to be opened in managed apps and accounts", true], "allowOTAPKIUpdates" => ["Allow over-the-air PKI updates", true], "allowPassbookWhileLocked" => ["Allow Passbook notifications on the lock screen", true], "allowPhotoStream" => ["Allow Photo Stream", true], "safariAllowAutoFill" => ["Allow Safari auto-fill", true], "safariForceFraudWarning" => ["Force Safari fraud warning", true], "safariAllowJavascript" => ["Allow Safari to execute JavaScript", true], "safariAllowPopups" => ["Allow Safari to show pop-up tabs", true], "allowSharedStream" => ["Allow Shared Photo Stream", true], "allowUntrustedTLSPrompt" => ["Allow untrusted HTTPS certificates", true], "allowVoiceDialing" => ["Allow voice dialing", true], "allowYouTube" => ["Allow YouTube", true], "forceAssistantProfanityFilter" => ["Force profanity filter assistant", false], "forceEncryptedBackup" => ["Force encrypt all backups", false], "forceITunesStorePasswordEntry" => ["Force require iTunes password for each transaction", false], "forceLimitAdTracking" => ["Limit ad tracking", false], "forceAirPlayOutgoingRequestsPairingPassword" => ["Force all devices receiving AirPlay requests from this device to use a pairing password", false], "forceAirPlayIncomingRequestsPairingPassword" => ["Force all devices sending AirPlay requests to this device to use a password", false], "allowManagedAppsCloudSync" => ["Allow managed applications to use cloud sync", true], "allowActivityContinuation" => ["Allow Activity Continuation", true], "allowEnterpriseBookBackup" => ["Allow Enterprise books to be backed up", true], "allowEnterpriseBookMetadataSync" => ["Allow Enterprise book notes and highlights to be synchronized", true], "forceAirDropUnmanaged" => ["Consider AirDrop to be an unmanaged drop target (iOS 9+)", false], "allowScreenShot" => ["Allow display screenshots (also allow screen recording for iOS 9+)", true], } end
available_supervised_payloads()
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 55 def self.available_supervised_payloads # key => [english description, default, (options)] { "allowiTunes" => ["Allow iTunes Music Store", true], "allowVideoConferencing" => ["Allow video conferencing", true], "allowAppInstallation" => ["Allow App Store installations and updates", true], "allowAddingGameCenterFriends" => ["Allow adding Game Center friends", true], "allowAppRemoval" => ["Allow removal of apps from iOS device", true], "allowCloudDocumentSync" => ["Allow document and key-value syncing with iCloud", true], "allowExplicitContent" => ["Allow explicit music or video content from iTunes Store", true], "allowMultiplayerGaming" => ["Allow multiplayer gaming", true], "allowSafari" => ["Allow Safari", true], "allowAccountModification" => ["Allow account modification", true], "allowAirDrop" => ["Allow AirDrop", true], "allowAppCellularDataModification" => ["Allow changes to cellular data usage for apps", true], "allowAssistantUserGeneratedContent" => ["Allow Siri to query user-generated content from the web", true], "allowBookstore" => ["Allow iBookstore", true], "allowBookstoreErotica" => ["Allow iBookstore media that has been tagged as erotica", true], "allowChat" => ["Allow Messages app", true], "allowFindMyFriendsModification" => ["Allow changes to Find My Friends", true], "allowGameCenter" => ["Allow Game Center", true], "allowHostPairing" => ["Allow host pairing (except for supervision host)", true], "allowUIConfigurationProfileInstallation" => ["Allow installing configuration profiles and certificates interactively", true], "allowEraseContentAndSettings" => ['Allow the "Erase All Content And Settings" option in the Reset UI', true], "allowSpotlightInternetResults" => ["Allow Spotlight to return Internet search results", true], "allowEnablingRestrictions" => ['Enable the "Enable Restrictions" option in the Restrictions UI in Settings', true], "allowPodcasts" => ["Allow podcasts", true], "allowDefinitionLookup" => ["Allow definition lookups", true], "allowPredictiveKeyboard" => ["Allow predictive keyboards", true], "allowAutoCorrection" => ["Allow keyboard auto-correction", true], "allowSpellCheck" => ["Allow keyboard spell-check", true], "allowUIAppInstallation" => ["Allow App Store (iOS 9+)", true], "allowKeyboardShortcuts" => ["Allow keyboard shortcuts (iOS 9+)", true], "allowPairedWatch" => ["Allow pairing of Apple watch (iOS 9+)", true], "allowPasscodeModification" => ["Allow pairing of Apple watch (iOS 9+)", true], "allowDeviceNameModification" => ["Allow device name to be changed (iOS 9+)", true], "allowWallpaperModification" => ["Allow wallpaper to be changed (iOS 9+)", true], "allowAutomaticAppDownloads" => ["Allow automatic downloading of apps purchased on other devices for the same iTunes account (iOS 9+)", false], "allowEnterpriseAppTrust" => ["Trust enterprise apps (iOS 9+)", true], "allowCloudPhotoLibrary" => ["Allow iCloud Photo Library (iOS 9+)", true], "allowNews" => ["Allow Apple News", true], } end
new(custom_values = nil)
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 5 def initialize(custom_values = nil) payload = generate_restrictions(custom_values) payload = add_boilerplate payload merge! payload end
Private Instance Methods
add_boilerplate(payload)
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 125 def add_boilerplate(payload) content = { "PayloadType" => "com.apple.applicationaccess", "PayloadIdentifier" => "#{IOSConfigProfile.root_domain}.restrictions", "PayloadDescription" => "Restrict device capabilities", "PayloadUUID" => uuid, "PayloadRemovalDisallowed" => true, "PayloadVersion" => 1, }.merge payload { "PayloadContent" => [content], "PayloadType" => "Configuration", "PayloadDisplayName" => "#{IOSConfigProfile.organization} Device Restrictions", "PayloadIdentifier" => "#{IOSConfigProfile.root_domain}.config.mdm.#{SecureRandom.urlsafe_base64}", "PayloadUUID" => uuid, "PayloadVersion" => 1, } end
generate_restrictions(custom_values)
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 108 def generate_restrictions(custom_values) if not custom_values.is_a? Hash custom_values = Hash.new end default_payload = restrictions_payload payload = {} custom_values.each do |k, v| if not default_payload.has_key? k next end if default_payload[k].to_s != v.to_s payload[k] = v end end payload end
restrictions_payload()
click to toggle source
# File lib/ios_config_profile/device/restrictions_payload.rb, line 101 def restrictions_payload default_payload = {} IOSConfigProfile::RestrictionsPayload.available_payloads.each { |k, v| default_payload[k] = v[1] } IOSConfigProfile::RestrictionsPayload.available_supervised_payloads.each { |k, v| default_payload[k] = v[1] } default_payload end