# This class manages the configuration file used by the
# /usr/bin/ldap-mail-lists script. From the man page for ldap-mail-lists:
# "This script adds, updates, or deletes mail lists maintained in the LDAP
# directory.  The membership is driven by the members defined in mailman"

class su_ldap::ldapadmin::mail_lists(
  Enum['present', 'absent'] $ensure,
  Optional[String]          $master = undef,
) {

  if ($ensure == 'present' and (! $master)) {
    fail("missing master parameter")
  }

  file { '/etc/ldapadmin/ldap-mail-lists.conf':
    ensure  => $ensure,
    mode    => '0644',
    content => template('su_ldap/etc/ldapadmin/ldap-mail-lists.conf.erb'),
    require => File['/etc/ldapadmin'],
  }

  # Keytab used to access mailman. Don't remove in case one of the
  # sync-script classes needs it.
  if ($ensure == 'present') {
    base::wallet { 'service/lists':
      ensure  => 'present',
      path    => '/etc/ldap/service-lists.keytab',
      owner   => 'root',
      require => File['/etc/ldapadmin'],
    }
  }


}