From cc9a7f5cf0275c75b081f24ac24d1dbd332e24ea Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Fri, 18 Mar 2016 14:28:03 +0100
Subject: [PATCH] Set permissions on Drupal files and provide update script

---
 tasks/install.gitscript.yml        |  2 +-
 tasks/install.yml                  |  4 ++++
 tasks/users.drush.yml              |  4 ++++
 tasks/users.gitscript.yml          | 28 ++++++++++++++++++++++++++++
 tasks/users.none.yml               |  4 ++++
 tasks/users.svn.yml                |  4 ++++
 templates/scripts/update/gitscript | 11 +++++++++++
 7 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 tasks/users.drush.yml
 create mode 100644 tasks/users.gitscript.yml
 create mode 100644 tasks/users.none.yml
 create mode 100644 tasks/users.svn.yml
 create mode 100644 templates/scripts/update/gitscript

diff --git a/tasks/install.gitscript.yml b/tasks/install.gitscript.yml
index 9431bda..5f30c8e 100644
--- a/tasks/install.gitscript.yml
+++ b/tasks/install.gitscript.yml
@@ -25,7 +25,7 @@
     dest: '{{ webRoot }}{{ drupal.src.git.target2 }}'
     force: yes
     version: '{{ drupal.src.git.branch|default(omit) }}'
-  when: drupal.src.git.target is defined
+  when: drupal.src.git.target2 is defined
 
 - name: "Run Script"
   shell: '{{ webRoot }}{{ drupal.src.git.target }}{{ drupal.src.script }}'
diff --git a/tasks/install.yml b/tasks/install.yml
index d4830bb..4eba863 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -47,6 +47,10 @@
 - include: install.{{ installSource.mode|default("none") }}.yml
   when: drupal_install_drupal and drupal_available is defined and drupal_available.stdout != '{{ drupalRoot }}/index.php'
 
+- include: users.{{ installSource.mode|default("none") }}.yml
+  when: drupal_install_drupal and drupal.src.name is defined
+  tags: 'SetPermissions'
+
 - name: "Configuration file"
   template:
     src='{{ item.src }}'
diff --git a/tasks/users.drush.yml b/tasks/users.drush.yml
new file mode 100644
index 0000000..1d6a612
--- /dev/null
+++ b/tasks/users.drush.yml
@@ -0,0 +1,4 @@
+---
+# file: roles/drupal/tasks/users.drush.yml
+
+- set_fact: dummy=yes
diff --git a/tasks/users.gitscript.yml b/tasks/users.gitscript.yml
new file mode 100644
index 0000000..77942cd
--- /dev/null
+++ b/tasks/users.gitscript.yml
@@ -0,0 +1,28 @@
+---
+# file: roles/drupal/tasks/users.gitscript.yml
+
+- name: "Make sure the git group exists"
+  group: name='{{ drupal.src.name }}'
+
+- name: "Add users to git group"
+  user:
+    name='{{ item }}'
+    groups='{{ drupal.src.name }}'
+    append=yes
+  with_items: '{{ drupal.src.users|default([]) }}'
+
+- name: "File Modes and Ownership for Repository"
+  file:
+    path='{{ webRoot }}{{ drupal.src.git.target }}'
+    owner='root'
+    group='{{ drupal.src.name }}'
+    mode='ug+rw,o+r,o-w'
+    recurse=yes
+
+- name: "Create Update Script"
+  template:
+    src='scripts/update/gitscript'
+    dest='{{ webRoot }}/.update'
+    owner='root'
+    group='root'
+    mode='755'
diff --git a/tasks/users.none.yml b/tasks/users.none.yml
new file mode 100644
index 0000000..94fd01e
--- /dev/null
+++ b/tasks/users.none.yml
@@ -0,0 +1,4 @@
+---
+# file: roles/drupal/tasks/users.none.yml
+
+- set_fact: dummy=yes
diff --git a/tasks/users.svn.yml b/tasks/users.svn.yml
new file mode 100644
index 0000000..6d231ae
--- /dev/null
+++ b/tasks/users.svn.yml
@@ -0,0 +1,4 @@
+---
+# file: roles/drupal/tasks/users.svn.yml
+
+- set_fact: dummy=yes
diff --git a/templates/scripts/update/gitscript b/templates/scripts/update/gitscript
new file mode 100644
index 0000000..cfacdd3
--- /dev/null
+++ b/templates/scripts/update/gitscript
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+{% set path=[webRoot, drupal.src.git.target2|default(drupal.src.git.target)]|join('') %}
+cd {{ path }}
+
+chown -R {{ apacheUser }}:{{ apacheUser }} {{ path }}
+chmod -R g+w {{ path }}
+git fetch origin
+git pull origin master
+chown -R {{ apacheUser }}:{{ apacheUser }} {{ path }}
+chmod -R ug+r,ug-w,o-w,o-r {{ path }}
-- 
GitLab