Add option to disallow world permissions for user shares.
authorJan Schneider <jan@horde.org>
Mon, 22 Feb 2010 15:21:36 +0000 (16:21 +0100)
committerJan Schneider <jan@horde.org>
Mon, 22 Feb 2010 15:21:36 +0000 (16:21 +0100)
horde/config/conf.xml
horde/docs/CHANGES
horde/services/shares/edit.php
horde/templates/shares/edit.inc
kronolith/perms.php
kronolith/templates/perms/perms.inc

index 05747ea..505b02f 100644 (file)
   to.</configdescription>
   <configsection name="share">
    <configheader>Allow Sharing?</configheader>
-   <configboolean name="no_sharing" required="false" desc="Prevent
-   users from editing permissions on their shares. This will keep a
-   user from granting other users (or guests) access to their address
-   book, notebook, calendar, etc.">false</configboolean>
-
-   <configheader>Allow sharing with groups that users aren't members
-   of?</configheader>
+   <configboolean name="no_sharing" required="false" desc="Prevent users from
+   editing permissions on their shares. This will keep a user from granting
+   other users (or guests) access to their address book, notebook, calendar,
+   etc.">false</configboolean>
+   <configboolean name="world" required="false" desc="If you enable this
+   option, users will be able to share their resources with all (authenticated
+   and guest) users on the system.">true</configboolean>
    <configboolean name="any_group" required="false" desc="If you enable this
    option, users will be able to share their resources with any group,
    regardless of whether or not they are a member. If you disable it, users
    will only be able to share their resources with groups they are members
    of.">false</configboolean>
-
    <configheader>Share Caching</configheader>
    <configdescription>Enabling share caching improves performance because the
    share backend will only be queried once per session. But it also increases
    users log in the next time.</configdescription>
    <configboolean name="cache" required="false" desc="Enable share
    caching?">false</configboolean>
-
    <configheader>Shares Driver</configheader>
    <configdescription>
      You can use different driver types for the Horde Share
index 1ba8391..ccf96e0 100644 (file)
@@ -2,6 +2,7 @@
 v4.0-cvs
 --------
 
+[jan] Add option to disallow world permissions for user shares.
 [mms] Allow Mozilla DNS prefetching to be turned off when displaying untrusted
       content (Ticket #8836).
 [jan] Store alarm dates in UTC (Bug #8381).
index d86123f..a05bc7b 100644 (file)
@@ -89,48 +89,51 @@ case 'editform':
             }
         }
 
-        // Process default permissions.
-        if (Horde_Util::getFormData('default_show')) {
-            $perm->addDefaultPermission(Horde_Perms::SHOW, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::SHOW, false);
-        }
-        if (Horde_Util::getFormData('default_read')) {
-            $perm->addDefaultPermission(Horde_Perms::READ, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::READ, false);
-        }
-        if (Horde_Util::getFormData('default_edit')) {
-            $perm->addDefaultPermission(Horde_Perms::EDIT, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::EDIT, false);
-        }
-        if (Horde_Util::getFormData('default_delete')) {
-            $perm->addDefaultPermission(Horde_Perms::DELETE, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::DELETE, false);
-        }
+        if (Horde_Auth::isAdmin() ||
+            !empty($GLOBALS['conf']['shares']['world'])) {
+            // Process default permissions.
+            if (Horde_Util::getFormData('default_show')) {
+                $perm->addDefaultPermission(Horde_Perms::SHOW, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::SHOW, false);
+            }
+            if (Horde_Util::getFormData('default_read')) {
+                $perm->addDefaultPermission(Horde_Perms::READ, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::READ, false);
+            }
+            if (Horde_Util::getFormData('default_edit')) {
+                $perm->addDefaultPermission(Horde_Perms::EDIT, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::EDIT, false);
+            }
+            if (Horde_Util::getFormData('default_delete')) {
+                $perm->addDefaultPermission(Horde_Perms::DELETE, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::DELETE, false);
+            }
 
-        // Process guest permissions.
-        if (Horde_Util::getFormData('guest_show')) {
-            $perm->addGuestPermission(Horde_Perms::SHOW, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::SHOW, false);
-        }
-        if (Horde_Util::getFormData('guest_read')) {
-            $perm->addGuestPermission(Horde_Perms::READ, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::READ, false);
-        }
-        if (Horde_Util::getFormData('guest_edit')) {
-            $perm->addGuestPermission(Horde_Perms::EDIT, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::EDIT, false);
-        }
-        if (Horde_Util::getFormData('guest_delete')) {
-            $perm->addGuestPermission(Horde_Perms::DELETE, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::DELETE, false);
+            // Process guest permissions.
+            if (Horde_Util::getFormData('guest_show')) {
+                $perm->addGuestPermission(Horde_Perms::SHOW, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::SHOW, false);
+            }
+            if (Horde_Util::getFormData('guest_read')) {
+                $perm->addGuestPermission(Horde_Perms::READ, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::READ, false);
+            }
+            if (Horde_Util::getFormData('guest_edit')) {
+                $perm->addGuestPermission(Horde_Perms::EDIT, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::EDIT, false);
+            }
+            if (Horde_Util::getFormData('guest_delete')) {
+                $perm->addGuestPermission(Horde_Perms::DELETE, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::DELETE, false);
+            }
         }
 
         // Process creator permissions.
index c3b0b71..bff7a04 100644 (file)
@@ -50,6 +50,7 @@ if (isset($userperms[$owner])) {
   </td>
 </tr>
 
+<?php if (Horde_Auth::isAdmin() || !empty($GLOBALS['conf']['shares']['world'])): ?>
 <!-- Spacer -->
 <tr><td>&nbsp;</td></tr>
 
@@ -119,6 +120,7 @@ if (isset($userperms[$owner])) {
     <label for="guest_delete" class="hidden"><?php echo _("Delete") ?></label>
   </td>
 </tr>
+<?php endif; ?>
 
 <!-- Spacer -->
 <tr><td>&nbsp;</td></tr>
index 868b54a..aa95bd3 100644 (file)
@@ -73,58 +73,61 @@ case 'editform':
             }
         }
 
-        // Process default permissions.
-        if (Horde_Util::getFormData('default_show')) {
-            $perm->addDefaultPermission(Horde_Perms::SHOW, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::SHOW, false);
-        }
-        if (Horde_Util::getFormData('default_read')) {
-            $perm->addDefaultPermission(Horde_Perms::READ, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::READ, false);
-        }
-        if (Horde_Util::getFormData('default_edit')) {
-            $perm->addDefaultPermission(Horde_Perms::EDIT, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::EDIT, false);
-        }
-        if (Horde_Util::getFormData('default_delete')) {
-            $perm->addDefaultPermission(Horde_Perms::DELETE, false);
-        } else {
-            $perm->removeDefaultPermission(Horde_Perms::DELETE, false);
-        }
-        if (Horde_Util::getFormData('default_delegate')) {
-            $perm->addDefaultPermission(Kronolith::PERMS_DELEGATE, false);
-        } else {
-            $perm->removeDefaultPermission(Kronolith::PERMS_DELEGATE, false);
-        }
+        if (Horde_Auth::isAdmin() ||
+            !empty($GLOBALS['conf']['shares']['world'])) {
+            // Process default permissions.
+            if (Horde_Util::getFormData('default_show')) {
+                $perm->addDefaultPermission(Horde_Perms::SHOW, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::SHOW, false);
+            }
+            if (Horde_Util::getFormData('default_read')) {
+                $perm->addDefaultPermission(Horde_Perms::READ, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::READ, false);
+            }
+            if (Horde_Util::getFormData('default_edit')) {
+                $perm->addDefaultPermission(Horde_Perms::EDIT, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::EDIT, false);
+            }
+            if (Horde_Util::getFormData('default_delete')) {
+                $perm->addDefaultPermission(Horde_Perms::DELETE, false);
+            } else {
+                $perm->removeDefaultPermission(Horde_Perms::DELETE, false);
+            }
+            if (Horde_Util::getFormData('default_delegate')) {
+                $perm->addDefaultPermission(Kronolith::PERMS_DELEGATE, false);
+            } else {
+                $perm->removeDefaultPermission(Kronolith::PERMS_DELEGATE, false);
+            }
 
-        // Process guest permissions.
-        if (Horde_Util::getFormData('guest_show')) {
-            $perm->addGuestPermission(Horde_Perms::SHOW, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::SHOW, false);
-        }
-        if (Horde_Util::getFormData('guest_read')) {
-            $perm->addGuestPermission(Horde_Perms::READ, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::READ, false);
-        }
-        if (Horde_Util::getFormData('guest_edit')) {
-            $perm->addGuestPermission(Horde_Perms::EDIT, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::EDIT, false);
-        }
-        if (Horde_Util::getFormData('guest_delete')) {
-            $perm->addGuestPermission(Horde_Perms::DELETE, false);
-        } else {
-            $perm->removeGuestPermission(Horde_Perms::DELETE, false);
-        }
-        if (Horde_Util::getFormData('guest_delegate')) {
-            $perm->addGuestPermission(Kronolith::PERMS_DELEGATE, false);
-        } else {
-            $perm->removeGuestPermission(Kronolith::PERMS_DELEGATE, false);
+            // Process guest permissions.
+            if (Horde_Util::getFormData('guest_show')) {
+                $perm->addGuestPermission(Horde_Perms::SHOW, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::SHOW, false);
+            }
+            if (Horde_Util::getFormData('guest_read')) {
+                $perm->addGuestPermission(Horde_Perms::READ, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::READ, false);
+            }
+            if (Horde_Util::getFormData('guest_edit')) {
+                $perm->addGuestPermission(Horde_Perms::EDIT, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::EDIT, false);
+            }
+            if (Horde_Util::getFormData('guest_delete')) {
+                $perm->addGuestPermission(Horde_Perms::DELETE, false);
+            } else {
+                $perm->removeGuestPermission(Horde_Perms::DELETE, false);
+            }
+            if (Horde_Util::getFormData('guest_delegate')) {
+                $perm->addGuestPermission(Kronolith::PERMS_DELEGATE, false);
+            } else {
+                $perm->removeGuestPermission(Kronolith::PERMS_DELEGATE, false);
+            }
         }
 
         // Process creator permissions.
index 4865ccb..8fcc9a9 100644 (file)
@@ -40,6 +40,7 @@
   </td>
 </tr>
 
+<?php if (Horde_Auth::isAdmin() || !empty($GLOBALS['conf']['shares']['world'])): ?>
 <!-- Spacer -->
 <tr><td colspan="7">&nbsp;</td></tr>
 
   </td>
   <td>&nbsp;</td>
 </tr>
+<?php endif; ?>
 
 <!-- Spacer -->
 <tr><td colspan="7">&nbsp;</td></tr>