albertyw/ios_config_profile

View on GitHub
lib/ios_config_profile/device/mdm_payload.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module IOSConfigProfile
  class MDMPayload < Hash
    include IOSConfigProfile::BasicPayload

    attr_reader :url, :security_payload, :topic

    def initialize(url, security_payload, topic)
      raise "url must be https" if url[0, 5] != "https"
      @url = url
      @security_payload = security_payload
      @topic = topic
      require_attributes :url, :topic, :security_payload
      replace mdm_payload
    end

    private

    def mdm_payload
      {
        "Topic" => topic,
        "ServerURL" => "#{url}/command",
        "CheckInURL" => "#{url}/checkin",
        "PayloadUUID" => uuid,
        "IdentityCertificateUUID" => security_payload.uuid,

        "SignMessage" => false,
        "AccessRights" => 8191,
        "UseDevelopmentAPNS" => false,
        "CheckOutWhenRemoved" => true,

        "PayloadType" => "com.apple.mdm",
        "PayloadVersion" => 1,
        "PayloadIdentifier" => "#{IOSConfigProfile.root_domain}ipcu.profile.mdm",
        "PayloadDisplayName" => "Mobile Device Management",
        "PayloadDescription" => "Configures Mobile Device Management",
        "PayloadOrganization" => IOSConfigProfile.organization,
      }
    end
  end
end