| rev | 
   line source | 
| 
bsw@1656
 | 
     1 config.ldap = {
 | 
| 
bsw@1656
 | 
     2   hosts = {
 | 
| 
bsw@1656
 | 
     3     {
 | 
| 
bsw@1656
 | 
     4       { uri = "ldap://192.168.1.1", tls = true, timeout = 5 },
 | 
| 
bsw@1656
 | 
     5       { uri = "ldap://192.168.1.2", tls = true, timeout = 5 },
 | 
| 
bsw@1656
 | 
     6     },
 | 
| 
bsw@1656
 | 
     7     { uri = "ldap://192.168.1.3", tls = true, timeout = 5 },
 | 
| 
bsw@1656
 | 
     8   },
 | 
| 
bsw@1656
 | 
     9   base = "dc=example,dc=org",
 | 
| 
bsw@1656
 | 
    10   bind_as = { dn = "cn=admin,dc=example,dc=org", password = "secure" },
 | 
| 
bsw@1656
 | 
    11   member = {
 | 
| 
bsw@1656
 | 
    12     registration = "auto",
 | 
| 
bsw@1656
 | 
    13     scope = "subtree",
 | 
| 
bsw@1656
 | 
    14     login_normalizer = function (login)
 | 
| 
bsw@1656
 | 
    15       return login:lower()
 | 
| 
bsw@1656
 | 
    16     end,
 | 
| 
bsw@1656
 | 
    17     login_filter_map = function (login)
 | 
| 
bsw@1656
 | 
    18       return "(uid=" .. ldap.escape_filter(login) .. ")"
 | 
| 
bsw@1656
 | 
    19     end,
 | 
| 
bsw@1656
 | 
    20     login_map = function (ldap_entry)
 | 
| 
bsw@1656
 | 
    21       return ldap_entry.uid[1]
 | 
| 
bsw@1656
 | 
    22     end,
 | 
| 
bsw@1656
 | 
    23     uid_filter_map = function (uid)
 | 
| 
bsw@1656
 | 
    24       return "(uidNumber=" .. ldap.escape_filter(uid) .. ")"
 | 
| 
bsw@1656
 | 
    25     end,
 | 
| 
bsw@1656
 | 
    26     uid_map = function (ldap_entry)
 | 
| 
bsw@1656
 | 
    27       return ldap_entry.uidNumber[1]
 | 
| 
bsw@1656
 | 
    28     end,
 | 
| 
bsw@1656
 | 
    29     fetch_attr = { "uid", "uidNumber", "givenName", "sn", "displayName", "memberof" },
 | 
| 
bsw@1656
 | 
    30     attr_map = function (ldap_entry, member)
 | 
| 
bsw@1656
 | 
    31       member.identification = ldap_entry.givenName[1] .. " " .. ldap_entry.sn[1]
 | 
| 
bsw@1656
 | 
    32       member.name = ldap_entry.displayName[1]
 | 
| 
bsw@1656
 | 
    33     end,
 | 
| 
bsw@1656
 | 
    34     privilege_map = function (ldap_entry, member)
 | 
| 
bsw@1656
 | 
    35       local privileges
 | 
| 
bsw@1656
 | 
    36       if ldap_entry.dn:match("ou=people,dc=example,dc=org") then
 | 
| 
bsw@1656
 | 
    37         privileges = {
 | 
| 
bsw@1656
 | 
    38           { unit_id = 1, voting_right = true, polling_right = true },
 | 
| 
bsw@1656
 | 
    39           { unit_id = 2, voting_right = true, polling_right = false },
 | 
| 
bsw@1656
 | 
    40           { unit_id = 3, voting_right = false, polling_right = true }
 | 
| 
bsw@1656
 | 
    41         }
 | 
| 
bsw@1656
 | 
    42       elseif ldap_entry.dn:match("ou=employees,dc=example,dc=org$") then
 | 
| 
bsw@1656
 | 
    43         privileges = {
 | 
| 
bsw@1656
 | 
    44           { unit_id = 1, voting_right = false, polling_right = true },
 | 
| 
bsw@1656
 | 
    45           { unit_id = 2, voting_right = false, polling_right = true },
 | 
| 
bsw@1656
 | 
    46           { unit_id = 3, voting_right = true, polling_right = false }
 | 
| 
bsw@1656
 | 
    47         }
 | 
| 
bsw@1656
 | 
    48       elseif ldap_entry.dn:match("ou=member,dc=example,dc=org$") then
 | 
| 
bsw@1656
 | 
    49         privileges = {
 | 
| 
bsw@1656
 | 
    50           { unit_id = 1, voting_right = true, polling_right = false }
 | 
| 
bsw@1656
 | 
    51         }
 | 
| 
bsw@1656
 | 
    52       end
 | 
| 
bsw@1656
 | 
    53       return privileges
 | 
| 
bsw@1656
 | 
    54     end,
 | 
| 
bsw@1656
 | 
    55     cache_passwords = true,
 | 
| 
bsw@1656
 | 
    56     locked_profile_fields = { name = true }
 | 
| 
bsw@1656
 | 
    57   }
 | 
| 
bsw@1656
 | 
    58 }
 | 
| 
bsw@1656
 | 
    59 
 |