Support for setting htaccess
diff --git a/apache/server/init.sls b/apache/server/init.sls
index df5ed64..46d4d4f 100644
--- a/apache/server/init.sls
+++ b/apache/server/init.sls
@@ -1,3 +1,4 @@
include:
- apache.server.service
-- apache.server.site
\ No newline at end of file
+- apache.server.site
+- apache.server.users
diff --git a/apache/server/users.sls b/apache/server/users.sls
new file mode 100644
index 0000000..20bc3a2
--- /dev/null
+++ b/apache/server/users.sls
@@ -0,0 +1,39 @@
+{%- from "apache/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+{%- for user_name, user in server.get('user', {}).iteritems() %}
+{%- if user.enabled %}
+
+apache_setup_user_{{ user_name }}:
+ webutil.user_exists:
+ - name: {{ user_name }}
+ {%- if user.htpasswd is defined %}
+ - htpasswd_file: {{ server.htpasswd_dir }}/{{ user.htpasswd }}
+ {%- else %}
+ - htpasswd_file: {{ server.htpasswd_dir }}/htpasswd
+ {%- endif %}
+ - password: {{ user.password }}
+ {%- if user.opts is defined %}
+ - options: '{{ user.opts }}'
+ {%- endif %}
+ - require:
+ - pkg: apache_packages
+
+{%- else %}
+
+apache_setup_user_{{ user_name }}_absent:
+ module.run:
+ - name: htpasswd.userdel
+ - user: {{ user_name }}
+ {%- if user.htpasswd is defined %}
+ - pwfile: /etc/apache/{{ user.htpasswd }}
+ {%- else %}
+ - pwfile: {{ server.htpasswd_dir }}/htpasswd
+ {%- endif %}
+ - require:
+ - pkg: apache_packages
+
+{%- endif %}
+{%- endfor %}
+
+{%- endif %}
diff --git a/tests/pillar/apache_server.sls b/tests/pillar/apache_server.sls
index 4309274..e6dab85 100644
--- a/tests/pillar/apache_server.sls
+++ b/tests/pillar/apache_server.sls
@@ -4,6 +4,11 @@
modules:
- cgi
- php
+ user:
+ cloudlab:
+ enabled: true
+ password: cloudlab
+ htpasswd: cloudlab.htpasswd
site:
roundcube:
enabled: true
@@ -32,6 +37,9 @@
- uri: /mailman
path: /usr/lib/cgi-bin/mailman
script: true
+ auth:
+ engine: basic
+ htpasswd: cloudlab.htpasswd
- uri: /pipermail
path: /var/lib/mailman/archives/public
webdav: