configure_profile

in itchef/cookbooks/cpe_nomad/resources/darwin.rb [74:150]


  def configure_profile
    nomad_prefs =
      node['cpe_nomad']['prefs'].reject { |_k, v| v.nil? }
    login_prefs =
      node['cpe_nomad']['login']['prefs'].reject { |_k, v| v.nil? }
    actions_prefs =
      node['cpe_nomad']['actions']['prefs'].reject { |_k, v| v.nil? }
    if [
      nomad_prefs,
      login_prefs,
      actions_prefs,
    ].all?(&:empty?)
      Chef::Log.info("#{cookbook_name}: prefs not found.")
      return
    end

    unless nomad_prefs.empty?
      {
        'PayloadEnabled' => true,
        'PayloadIdentifier' => '7D5A6BCB-1CFD-44BC-ADCF-B511A63F69E3',
        'PayloadDescription' => 'NoMAD Settings',
        'PayloadVersion' => 1,
        'PayloadType' => 'com.trusourcelabs.NoMAD',
        'PayloadUUID' => '7D5A6BCB-1CFD-44BC-ADCF-B511A63F69E3',
      }.each { |k, v| nomad_prefs[k] = v }
    end

    unless login_prefs.empty?
      {
        'PayloadEnabled' => true,
        'PayloadIdentifier' => '94f48d1b-8fbf-4c40-9325-9c3775450250',
        'PayloadDescription' => 'NoMADLoginAD Settings',
        'PayloadVersion' => 1,
        'PayloadType' => 'menu.nomad.login.ad',
        'PayloadUUID' => '94f48d1b-8fbf-4c40-9325-9c3775450250',
      }.each { |k, v| login_prefs[k] = v }
    end

    unless actions_prefs.empty?
      {
        'PayloadEnabled' => true,
        'PayloadIdentifier' => '8c8b263a-2fa1-4471-baf2-9bafdd90e74b',
        'PayloadDescription' => 'NoMAD Actions Settings',
        'PayloadVersion' => 1,
        'PayloadType' => 'menu.nomad.actions',
        'PayloadUUID' => '8c8b263a-2fa1-4471-baf2-9bafdd90e74b',
      }.each { |k, v| actions_prefs[k] = v }
    end

    prefix = node['cpe_profiles']['prefix']
    organization = node['organization'] ? node['organization'] : 'Facebook'

    {
      'NoMAD' => nomad_prefs,
      'NoMAD Login' => login_prefs,
      'NoMAD Actions' => actions_prefs,
    }.each do |pref_name, prefs|
      next if prefs.empty?
      profile_id = "#{prefix}.#{pref_name.downcase.sub(' ', '_')}"

      profile = {
        'PayloadEnabled' => true,
        'PayloadDisplayName' => pref_name,
        'PayloadScope' => 'System',
        'PayloadType' => 'Configuration',
        'PayloadRemovalDisallowed' => true,
        'PayloadDescription' => '',
        'PayloadVersion' => 1,
        'PayloadOrganization' => organization,
        'PayloadIdentifier' => profile_id,
        'PayloadUUID' => '5312D107-393D-493C-A8D2-14D6E02A0967',
        'PayloadContent' => [prefs],
      }
      node.default['cpe_profiles'][profile_id] = profile
    end
  end