From 946aecd75f8a99e1a8a59a0d2b8e9a8da0b89a92 Mon Sep 17 00:00:00 2001
From: sylvainar <sylvain.ar@hotmail.fr>
Date: Sun, 17 Sep 2017 21:25:30 +0200
Subject: [PATCH] Add support for users

---
 README.md        |  7 +++++++
 default/main.yml |  1 +
 tasks/main.yml   |  4 ++++
 tasks/users.yml  | 18 ++++++++++++++++++
 4 files changed, 30 insertions(+)
 create mode 100644 tasks/users.yml

diff --git a/README.md b/README.md
index 701f181..8ac06ba 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,13 @@ yunohost:
       args: # Provide here args. Path and domain are mandatory, other args depend of the app (cf manifest.json of app).
         path: /ttrss
         domain: example.com
+  # The list of users.
+  users:
+    - name: admin
+      pass: p@ssw0rd
+      firstname: admin
+      lastname: admin
+      mail: admin@example.com
 ```
 
 Dependencies
diff --git a/default/main.yml b/default/main.yml
index f344a86..320dc21 100644
--- a/default/main.yml
+++ b/default/main.yml
@@ -5,3 +5,4 @@ yunohost:
   password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
   ignore_dyndns: False
   apps: ~
+  users: ~
diff --git a/tasks/main.yml b/tasks/main.yml
index bdaf213..4ad3764 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -38,6 +38,10 @@
   shell: yunohost domain cert-install
   changed_when: False
 
+- name: Add users
+  include: users.yml
+  when: yunohost.users
+
 - name: Install apps
   include: apps.yml
   when: yunohost.apps
diff --git a/tasks/users.yml b/tasks/users.yml
new file mode 100644
index 0000000..853accd
--- /dev/null
+++ b/tasks/users.yml
@@ -0,0 +1,18 @@
+---
+- name: List users
+  shell: yunohost user list --output-as json
+  register: yunohost_registered_users_raw
+  changed_when: False
+
+- name: Format json of users
+  set_fact: yunohost_registered_users="{{ yunohost_registered_users_raw.stdout | from_json }}"
+
+- name: Create missing users
+  shell: |
+    yunohost user create {{ item.name }} --admin-password {{ yunohost.password }} \
+    -f {{ item.firstname }} \
+    -l {{ item.lastname }} \
+    -m {{ item.mail }} \
+    -p {{ item.pass }}
+  with_items: "{{ yunohost.users }}"
+  when: item.name not in yunohost_registered_users.users.keys()
-- 
GitLab