Add the prosody module
[mirror/dsa-puppet.git] / 3rdparty / modules / prosody / manifests / user.pp
diff --git a/3rdparty/modules/prosody/manifests/user.pp b/3rdparty/modules/prosody/manifests/user.pp
new file mode 100644 (file)
index 0000000..23881f7
--- /dev/null
@@ -0,0 +1,33 @@
+# == Define: prosody::user
+define prosody::user(
+  String        $pass,
+  Prosody::Host $host = 'localhost',
+) {
+  $dir = regsubst($host, '\.', '%2e', 'G')
+
+  ensure_resource('file', "/var/lib/prosody/${dir}", {
+    ensure => 'directory',
+    owner  => 'prosody',
+    group  => 'prosody',
+  })
+
+  ensure_resource('file', "/var/lib/prosody/${dir}/accounts", {
+    ensure  => 'directory',
+    owner   => 'prosody',
+    group   => 'prosody',
+    require => File["/var/lib/prosody/${dir}"],
+  })
+
+  $_content = "
+return {
+  [\"password\"] = \"${pass}\";
+};
+"
+  file {"/var/lib/prosody/${dir}/accounts/${name}.dat":
+    owner   => 'prosody',
+    group   => 'prosody',
+    mode    => '0640',
+    content => $_content,
+    require => File["/var/lib/prosody/${dir}/accounts"],
+  }
+}