]> gitweb.fluxo.info Git - puppet-samba.git/commitdiff
Support "read only", "public", "writable", "printable" options
authorVladimir Rutsky <rutsky.vladimir@gmail.com>
Tue, 19 Mar 2013 13:44:18 +0000 (17:44 +0400)
committerVladimir Rutsky <rutsky.vladimir@gmail.com>
Tue, 19 Mar 2013 13:44:18 +0000 (17:44 +0400)
manifests/server/share.pp

index 552bfa14ccd6950e37a2d785a82d2b7ea647a633..7d308a0546ec878dbbcb6f78cf60b55d9ac76ea5 100644 (file)
@@ -12,7 +12,11 @@ define samba::server::share($ensure = present,
                             $guest_ok = '',
                             $guest_only = '',
                             $path = '',
-                            $read_only = '') {
+                            $read_only = '',
+                            $public = '',
+                            $writable = '',
+                            $printable = '',
+  ) {
 
   $context = '/files/etc/samba/smb.conf'
   $target = "target[. = '${name}']"
@@ -171,5 +175,38 @@ define samba::server::share($ensure = present,
       require => Augeas["${name}-section"],
       notify  => Class['samba::server::service']
     }
+
+    augeas { "${name}-public":
+      context => $context,
+      changes => $public ? {
+        true    => "set \"${target}/public\" yes",
+        false   => "set \"${target}/public\" no",
+        default => "rm \"${target}/public\"",
+      },
+      require => Augeas["${name}-section"],
+      notify  => Class['samba::server::service']
+    }
+
+    augeas { "${name}-writable":
+      context => $context,
+      changes => $writable ? {
+        true    => "set \"${target}/writable\" yes",
+        false   => "set \"${target}/writable\" no",
+        default => "rm \"${target}/writable\"",
+      },
+      require => Augeas["${name}-section"],
+      notify  => Class['samba::server::service']
+    }
+
+    augeas { "${name}-printable":
+      context => $context,
+      changes => $printable ? {
+        true    => "set \"${target}/printable\" yes",
+        false   => "set \"${target}/printable\" no",
+        default => "rm \"${target}/printable\"",
+      },
+      require => Augeas["${name}-section"],
+      notify  => Class['samba::server::service']
+    }
   }
 }