# @summary
#   Describe what this class do!
#
#   Detailed summary info if suitable
#
#
class aes {
  include aes::examfiles
  include aes::aes_sw
  include aes::tal_cli
  include aes::opendsa
  include aes::squid_filter
  include aes::latex
  include aes::broker
  include aes::auth
  include aes::auth_keydb
  include liurepo::centos_sclo_rh

  package {
    [
      'devtoolset-7',
      'gcc',
      'gcc-c++',
      'libaio',
      'python36',
    ]:
      ensure  => installed,
      require => Class['liurepo::centos_sclo_rh'],
  }

  file { '/etc/sudoers.d/aes':
    ensure  => file,
    mode    => '0440',
    owner   => root,
    group   => root,
    content => file("${module_name}/sudoers_aes"),
  }

  file { '/etc/anacrontab':
    ensure  => file,
    mode    => '0600',
    owner   => root,
    group   => root,
    content => file("${module_name}/anacrontab"),
  }

  # File for updating repositories.
  # file { '/opt/utils':
  #   ensure => directory,
  #   mode   => '0755',
  #   owner  => root,
  #   group  => root,
  # }
  # file { '/opt/utils/update_repo.sh':
  #   ensure  => file,
  #   mode    => '0755',
  #   owner   => root,
  #   group   => root,
  #   content => file("${module_name}/update_repo.sh"),
  # }

  # File to easily see when Puppet was last executed.
  # Ideally, we would like to know if it is devel or production as well.
  # exec { '/usr/bin/touch /var/last_puppet_run' :
  #   cwd   => '/var',
  #   user  => root,
  #   group => root,
  # }

  # File containing which environment is used.
  file { '/var/puppet_environment' :
    ensure  => file,
    mode    => '0644',
    owner   => root,
    group   => root,
    content => $environment,
  }

  ::users::liu_user { 'klaar36':
    commonname => 'Klas Arvidsson',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDOYyYpxtrci8RFelyYsZaLkjSnEATzMn6pKe50kAVGgnntWGynKSnlgfhKwRb0nqR4ZDpxqXB9qmJ4QxetiToWMDYJJgNVpCJ3xewH8Ov6Qx1+xaZWSBGJ1602CP4B0nVn4PTEBDRhyvrsvjoc4Quim6vmYHcL8I8un2EiQKPOQ5f4H4BeA4jGqCOnl+XqCMAUXD7rrZy3IxS02jD6fyDpThBKK4cpKvknx8EWf2WsEgRZgo3jJAvRUqrB2BAUMuG4U4ICNT0LOuwU2qGiOi0nTIIkpAmF0qv71nOIvWAwQHImw0fK6Q4yYp9SlCw421EYsseM4dTvGACCxQ6tlduZ', # lint:ignore:140chars
  }

  ::users::liu_user { 'filst04':
    commonname => 'Filip Strömbäck',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAwq552ev0T5YyWDUoEi2hY8hhm6iZHoSnfXNjCpW8eeigSd66FMdaXfWCmwLP/u3Cmino/x5SQQuo1f1RbbHuRQ3iztT/+LIJdqIjCf5rlTKhWx4Goo+weWpNlikHB6A8A1JWbY7yq/sMCiLjO4yYQ606BzwOGY+D0Wsq6lIoadL8USQJU2WKIjHOoAqPdV4HpCk3VxI/KanjyUivXKHq6eVH4yc0m97w9B/5M2UGET5nF2hx5SsoWkd4V3rALGsD3iUwfqxgOaZv62qwldEjFCsBamQfaQGNCJFYdJkmpNTlO46ywV4IC1wFbv7xqPIL33HFK5Q2TepsvdMK3ZRpWQ==', # lint:ignore:140chars
  }

  ::users::liu_user { 'vikol94':
    commonname => 'Viktor Olsson',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAADAQABAAACAQC1qIRcovsiy33lldZO+VzHHZU++TfjB3KQh0YXz1eZBt5gTpyMmC2rWVJQK/QzF08j/HLdH78AxY3t7koFzZhTdgCNYk5aYisER08mRrfi+0h235QcglWR2IESP0cd0P7s7lXEW7X95F/n4+hUWraCLRyprfRVoqeWlLemKeilrD8CrUyHYRZrja9jnJh8/JYqCeE7hM7RXssio0eMPofUAyq1Ku0e7ZMYwATTvvy9wtQzf2ZB8IPxkPZI5tzO4Tj5RelcGIWWJ2e4so8ZMI+aCP+7KUHC9u8xFMMzUgwuk0dGVD6C8CTdkjJB+iy+c+Al9MmjOmq+YITKOxeawe1XhTFphK1I3TwSaHHkfmteDojdfLNV/kTDwOgVO5xsEvvrLkqDo4v5GVVxPw2n/o8A7BmRtKSkhunfx4jWBlxoL/hTPGHSmgrvjOfrMi+ptsxULHN0+u8twHMOZ92vGgOgKeO2WNIOyjidW3Hv2DQV9R+ngptcrxWnDi3dYgSAkCw1xMGozNVeFdOYSp9VWLRrwR6WeBoLgKY9m+3Xu8VLnusPLuFehgKTUXfAXyyWc7TVqcw1DNAf93G6eqEmVJaA/IRJXzn746VISdwH+BmESX3SPEhe0WcOgjte+iiTjE41v2k2jYGaR0LPJQzZAcdM1LhXcCtjLdVhgIrv7f7iuQ==', # lint:ignore:140chars
  }

  ::users::liu_user { 'magni54':
    commonname => 'Magnus Nielsen',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAvWbp0OXIj3hIHpv6J88TCEXq/Ne46VcM8XAC+A4bDIuL2rOtMjTy5OmcAQwMPmyOh2x9xla5gCsEeNNPIKp2ujzsHqjlwl+0QD1teEOF/dnm2M0bTLOEUZhysyGRtn09o+hInAlswlq+3AVIeUo5A9xK7B+VX5Ap9RA4CNaR3/nuMLrNLP/xVyLEGazIXmh0O/pGhQV6KorJlyNYMtHCakLRzKWyP63Bs7uAGsotBntxyueKXa/RqAkMCnrlPT+z3UfxTmT0cjBCuvVdiEEhQ6MfIMzXaoqRBmbq42EpmSVZrXyTcR6s6Cz5/jSxSi17GcbH9twhRSXm+XfYFIhv9w==', # lint:ignore:140chars
  }

  ::users::liu_user { 'torjo38':
    commonname => 'Torbjörn Jonsson',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAADAQABAAACAQDbYFQ5iuox4ZxjleyIR4Pebp045xV1AhcaGXLNsBAMEk08d5ExPVXdoTsNcV9aGDH3mMnhihe4d3bY8xh919n5f500VY6TI1BQKDYUq5HXxbgfl6AG96WntcRc8OIKo31hjMc4o+GPawgvpit7cWs4tWBAxoenJcB43m99AaVH6xd8e6DYC6os6Zv69hu+hD/01aFzJEnANAAsDRqr5b+LUy/qKeRWzT1zGSzWUOeJBHS9rGXHIPmgoOs7FMCtT3w/lzoehxDNCsOUG8aBBb4jH7zDB59fYE3bp55lxjx176AraFHv/H/hcB6EGkqyOyMppHi2B0uPRxlTFOtNVSHptqKINh9NMYAniv+ZUGylJZMSWSQkRSI7U65EvfOaLFTHB/+IBfWAaXjcA0fNcm3lG0tCRXg3rbpumQ2ikq23FpFzNHG+T+383pJjeOjvZB26ij5C+vZ+jEJyXyL528OjO8sOmHEeR6lyc2UjAeHbf7//+gv/bo7wDTSMZVySLKXVwxY+eCEAwh8aVQHCmwx/qWmfE9FuKYZ6AZfdCPpCSQOZY97aQTMMAcSgLV2sYrMim9QpylkH0h4RLhBo76w+83Cg1uprv1ypag0RXIOu+BV0gOHAa3DxhCgWtf9JR3B4YDAq8GaYuVRq9Q6c9+iPo+EmQEdbU+7X4Loj34auOw==', # lint:ignore:140chars
  }

  ::users::liu_user { 'emmen85':
    commonname => 'Emma Enocksson Svensson',
    shell      => '/bin/bash',
    sshkey     => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCsUKr53aCwErzsdhD/5oEQ4gWW51NgXa70Ow20Fnv/pyKAepDsIMCOB6kf1aET8LOlnq8Wyu0/52GGB38mO6cUzi7MLeWj7bg1Npq7b5/Uoaquq/dginoVQDc5RuJfmoy7PwmjKep/J2OIkCs8kD4sKbqN3ArCW555hgBvlGCdHxER1x2c5wGc2iuMCcbsfonOfORIxzCoiF4igfmuA1wpFZgyjBLuHn/SOtp85pD3nR0JSiaJWcMLB7IkWzXxvbpUWhDf7/gE4mwCDkOajY8zdG+aLkAZI0J1TJUGq50zji4OouwxxPW2JhpVl1KbRPqec+pVtdQIZstgUg3YbJGl', # lint:ignore:140chars
  }

  ::server_firewall::rules_file { '45-permit_squid.rules':
    # lint:ignore:strict_indent heredoc failing...
    content => @(EOF),
    service squid is tcp/3128
    service sclogin is tcp/23431
    service aesmsi is tcp/23816
    service aesmso is tcp/23817
    service aesbroker is tcp/31337

    policy chain INPUT is
      accept service:squid from class:liu-nets
      accept service:sclogin from class:liu-nets
      accept service:aesmsi from class:liu-nets
      accept service:aesmso from class:liu-nets
      accept service:aesbroker from class:liu-nets
    end policy
    |-EOF
    # lint:endignore:strict_indent
  }
}