Skip to content
Snippets Groups Projects
Select Git revision
  • 26002f1a1f0a50ba5dd7c57d9ebe6acf5851c257
  • master default protected
  • b24
  • ll-workflow
  • alc-scindage-donnees-pj
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

RoleProvider.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ldap.pp 2.09 KiB
    # Configure LDAP support for FreeRADIUS
    define freeradius::ldap (
      $identity,
      $password,
      $basedn,
      $server      = 'localhost',
      $port        = 389,
      $uses        = 0,
      $idle        = 60,
      $probes      = 3,
      $interval    = 3,
      $timeout     = 10,
      $start       = '${thread[pool].start_servers}',
      $min         = '${thread[pool].min_spare_servers}',
      $max         = '${thread[pool].max_servers}',
      $spare       = '${thread[pool].max_spare_servers}',
      $ensure      = 'present',
      $starttls    = 'no',
      $cafile      = '',
      $certfile    = '',
      $keyfile     = '',
      $requirecert = 'allow',
    ) {
      $fr_package          = $::freeradius::params::fr_package
      $fr_service          = $::freeradius::params::fr_service
      $fr_modulepath       = $::freeradius::params::fr_modulepath
      $fr_group            = $::freeradius::params::fr_group
    
      # Validate our inputs
      # Hostnames
      unless (is_domain_name($server) or is_ip_address($server)) {
        fail('$server must be a valid hostname or IP address')
      }
    
      # Fake booleans (FR uses yes/no instead of true/false)
      unless $starttls in ['yes', 'no'] {
        fail('$starttls must be yes or no')
      }
    
      # Validate multiple choice options
      unless $requirecert in ['never', 'allow', 'demand', 'hard'] {
        fail('$requirecert must be one of never, allow, demand, hard')
      }
    
      # Validate integers
      unless is_integer($port) {
        fail('$port must be an integer')
      }
      unless is_integer($uses) {
        fail('$uses must be an integer')
      }
      unless is_integer($idle) {
        fail('$idle must be an integer')
      }
      unless is_integer($probes) {
        fail('$probes must be an integer')
      }
      unless is_integer($interval) {
        fail('$interval must be an integer')
      }
      unless is_integer($timeout) {
        fail('$timeout must be an integer')
      }
    
      # Generate a module config, based on ldap.conf
      file { "${fr_modulepath}/${name}":
        ensure  => $ensure,
        mode    => '0640',
        owner   => 'root',
        group   => $fr_group,
        content => template("freeradius/ldap.fr${::freeradius_maj_version}.erb"),
        require => [Package[$fr_package], Group[$fr_group]],
        notify  => Service[$fr_service],
      }
    }