dataset/seed/applicationservice/2022.03.08/openldap/templates/config_acl.ldif

38 lines
1.1 KiB
Text
Raw Normal View History

2022-05-04 10:29:03 +02:00
%set %%dns = {}
%for %%remote in %%accounts.remotes
%set %%name = %%normalize_family(%%remote)
%set %%family = %%accounts['remote_' + %%name]['family_' + %%name]
%%dns.setdefault(%%family, []).append((%%accounts['remote_' + %%name]['dn_' + %%name], %%accounts['remote_' + %%name]['read_only_' + %%name]))%slurp
%end for
2022-03-08 19:42:28 +01:00
dn: olcDatabase={2}mdb,cn=config
changetype:modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword
by self write
by anonymous auth
by * none
%set %%aclidx = 1
2022-05-04 10:29:03 +02:00
%for %%family, %%remotes in %%dns.items()
2022-05-07 08:11:18 +02:00
%if %%family == 'all'
olcAccess: {%%aclidx}to dn.subtree="%%calc_ldapclient_base_dn(%%ldap_base_dn, None, accounts=True)"
%else
2022-05-04 10:29:03 +02:00
olcAccess: {%%aclidx}to dn.subtree="%%calc_ldapclient_base_dn(%%ldap_base_dn, %%family)"
2022-05-07 08:11:18 +02:00
%end if
2022-05-04 10:29:03 +02:00
by self read
%for %%remote in %%remotes
by dn="%%remote[0]" %slurp
%if %%remote[1]
2022-03-08 19:42:28 +01:00
read%slurp
2022-05-04 10:29:03 +02:00
%else
2022-03-08 19:42:28 +01:00
write%slurp
2022-05-04 10:29:03 +02:00
%end if
%end for
%set %%aclidx += 1
2022-03-08 19:42:28 +01:00
by * none
2022-05-04 10:29:03 +02:00
%end for
2022-03-08 19:42:28 +01:00
%for %%idx, %%acl in %%enumerate(%%accounts.acl.ldap_acl_attribute)
%set %%aclidx += 1
olcAccess: {%%aclidx}to %%acl %echo ' '.join(%%acl.ldap_acl_rights)
%end for