{## # Iterate over all users and create LDAP entries for each, then assign admin to application roles # This template loops through a 'users' list variable where each user is a dict with keys: # username, uid, gid, password (optional), sn (optional), cn (optional) ##} ####################################################################### # Container for Application Roles (if not already created) ####################################################################### dn: {{ ldap.dn.application_roles }} objectClass: organizationalUnit ou: roles description: Container for application access profiles {% for user in users %} ####################################################################### # Create User {{ user.username }} ####################################################################### dn: {{ ldap.attributes.user_id }}={{ user.username }},{{ ldap.dn.users }} objectClass: top objectClass: inetOrgPerson objectClass: posixAccount {{ ldap.attributes.user_id }}: {{ user.username }} sn: {{ user.username }} cn: {{ user.username }} userPassword: {{ user.password }} loginShell: /bin/bash homeDirectory: /home/{{ user.username }} uidNumber: {{ user.uid }} gidNumber: {{ user.gid }} ####################################################################### # Assign {{ user.username }} to application user roles ####################################################################### {% for app, config in defaults_applications.items() %} dn: cn={{ app }}-user,{{ ldap.dn.application_roles }} changetype: modify add: roleOccupant roleOccupant: {{ ldap.attributes.user_id }}={{ user.username }},{{ ldap.dn.users }} {% endfor %} {% endfor %} ####################################################################### # Add Admin User to All Application Role Groups (unchanged) ####################################################################### {% for app, config in defaults_applications.items() %} dn: cn={{ app }}-administrator,{{ ldap.dn.application_roles }} changetype: modify add: roleOccupant roleOccupant: {{ ldap.attributes.user_id }}={{ users.administrator.username }},{{ ldap.dn.users }} dn: cn={{ app }}-user,{{ ldap.dn.application_roles }} changetype: modify add: roleOccupant roleOccupant: {{ ldap.attributes.user_id }}={{ users.administrator.username }},{{ ldap.dn.users }} {% endfor %}