diff --git a/action_map.yml b/action_map.yml index d23ccaf9..e75ced4e 100644 --- a/action_map.yml +++ b/action_map.yml @@ -437,8 +437,8 @@ tools: category_help: Specific tools actions: - ### tools_install() - install: + ### tools_init() + init: action_help: Install YunoHost LDAP initialization connections: - ldap diff --git a/ldap_scheme.yml b/ldap_scheme.yml new file mode 100644 index 00000000..d91a6b40 --- /dev/null +++ b/ldap_scheme.yml @@ -0,0 +1,66 @@ +ou=sudo: + ou: sudo + objectClass: + - organizationalUnit + - top + +cn=admin,ou=sudo: + cn: admin + sudoUser: admin + sudoHost: ALL + sudoCommand: ALL + sudoOption: "!authenticate" + objectClass: + - sudoRole + - top + +cn=www-data,ou=sudo: + cn: www-data + sudoUser: www-data + sudoHost: ALL + sudoCommand: /usr/bin/yunohost + sudoOption: "!authenticate" + objectClass: + - sudoRole + - top + +ou=users: + ou: users + objectClass: + - organizationalUnit + - top + +ou=domains: + ou: domains + objectClass: + - organizationalUnit + - top + +ou=apps: + ou: apps + objectClass: + - organizationalUnit + - top + +ou=groups: + ou: groups + objectClass: + - organizationalUnit + - top + +cn=admins,ou=groups: + cn: admins + gidNumber: "4001" + memberUid: admin + objectClass: + - posixGroup + - top + +cn=sftpusers,ou=groups: + cn: sftpusers + gidNumber: "4002" + memberUid: admin + objectClass: + - posixGroup + - top + diff --git a/yunohost_tools.py b/yunohost_tools.py new file mode 100644 index 00000000..b1a86a7c --- /dev/null +++ b/yunohost_tools.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + +import yaml + +def tools_init(args, connections): + + yldap = connections['ldap'] + + with open('ldap_scheme.yml') as f: + ldap_map = yaml.load(f) + + for rdn, attr_dict in ldap_map: + yldap.add(rdn, attr_dict)