{%- from "linux/map.jinja" import system, at with context %}

{%- if at.get('enabled', false) %}

at_packages:
  pkg.installed:
    - names: {{ at.pkgs }}

at_services:
  service.running:
    - enable: true
    - names: {{ at.services }}
    - require:
      - pkg: at_packages
  {%- if grains.get('noservices') %}
    - onlyif: /bin/false
  {%- endif %}

  {%- set allow_users = [] %}
  {%- for user_name, user_params in at.get('user', {}).items() %}
    {%- set user_enabled = user_params.get('enabled', false) and
        system.get('user', {}).get(
          user_name, {'enabled': true}).get('enabled', true) %}
    {%- if user_enabled %}
      {%- do allow_users.append(user_name) %}
    {%- endif %}
  {%- endfor %}

etc_at_allow:
  {%- if allow_users %}
  file.managed:
    - name: /etc/at.allow
    - template: jinja
    - source: salt://linux/files/cron_users.jinja
    - user: root
    - group: root
    - mode: 0600
    - defaults:
        users: {{ allow_users | yaml }}
    - require:
      - cron_packages
  {%- else %}
  file.absent:
    - name: /etc/at.allow
  {%- endif %}


{#
    /etc/at.deny should be absent to comply with
    CIS 5.1.8 Ensure at/cron is restricted to authorized users
#}
etc_at_deny:
  file.absent:
    - name: /etc/at.deny

{%- else %}

fake_linux_system_at:
  test.nop:
    - comment: Fake state to satisfy 'require sls:linux.system.at'

{%- endif %}
