]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
fixed group albums
authorcash <cash.costello@gmail.com>
Mon, 2 Jan 2012 22:49:31 +0000 (17:49 -0500)
committercash <cash.costello@gmail.com>
Mon, 2 Jan 2012 22:49:31 +0000 (17:49 -0500)
activate.php
pages/photos/album/view.php
pages/photos/image/upload.php
start.php
views/default/forms/photos/admin/settings.php

index 25d34338c328c44a0d40134d8f2d06bc9da5379b..86706d9a6ce9ffad9b69a132f26139e20ac7edcc 100644 (file)
@@ -41,8 +41,6 @@ $defaults = array(
        'album_river_view' => 'set',
 
        'image_sizes' => $image_sizes,
-
-       'grp_perm_override' => true,
 );
 
 foreach ($defaults as $name => $value) {
index 39816b299ecbdd1ef33a25e86ed12815ea0cf6ec..cef3647eec90ea24dfd9bb80e5fd188623edb779 100644 (file)
@@ -32,7 +32,7 @@ elgg_push_breadcrumb($album->getTitle());
 
 $content = elgg_view_entity($album, array('full_view' => true));
 
-if ($album->canWriteToContainer()) {
+if ($album->getContainerEntity()->canWriteToContainer()) {
        elgg_register_menu_item('title', array(
                        'name' => 'upload',
                        'href' => 'photos/upload/' . $album->getGUID(),
index 526972a35d64f2bffd3022324342f8d00cd36648..7d9db5ed8e2252a641617a8cb75e6d494ec9fba2 100644 (file)
@@ -21,14 +21,15 @@ if (elgg_get_plugin_setting('uploader', 'tidypics') != "disabled") {
 }
 
 $album = get_entity($album_guid);
-if (!$album || !$album->canEdit()) {
+if (!$album) {
        // @todo
        // throw warning and forward to previous page
        forward(REFERER);
 }
 
-if (!$album->canEdit()) {
+if (!$album->getContainerEntity()->canWriteToContainer()) {
        // @todo have to be able to edit album to upload photos
+       forward(REFERER);
 }
 
 // set page owner based on container (user or group)
index 6300688740fac0097396071b54de301cb4ded107..1df04876a5c17116f9b50bfeb6ba98e76bf0ec6b 100644 (file)
--- a/start.php
+++ b/start.php
@@ -63,6 +63,10 @@ function tidypics_init() {
        // RSS extensions for embedded media
        elgg_extend_view('extensions/xmlns', 'extensions/photos/xmlns');
 
+       // allow group members add photos to group albums
+       elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'tidypics_group_permission_override');
+       elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'tidypics_group_permission_override');
+
 /*
 
 
@@ -71,11 +75,6 @@ function tidypics_init() {
        //register_elgg_event_handler('pagesetup', 'system', 'tidypics_submenus');
 
 
-
-       if (get_plugin_setting('grp_perm_override', 'tidypics') != "disabled") {
-               register_plugin_hook('permissions_check', 'object', 'tidypics_permission_override');
-       }
-
        // Register for notifications
        register_notification_object('object', 'album', elgg_echo('tidypics:newalbum'));
        register_plugin_hook('notify:entity:message', 'object', 'tidypics_notify_message');
@@ -327,7 +326,10 @@ function tidypics_entity_menu_setup($hook, $type, $return, $params) {
 }
 
 /**
- * Override permissions for group albums and images
+ * Override permissions for group albums
+ *
+ * 1. To write to a container (album) you must be able to write to the owner of the container (odd)
+ * 2. We also need to change metadata on the album
  *
  * @param string $hook
  * @param string $type
@@ -335,18 +337,17 @@ function tidypics_entity_menu_setup($hook, $type, $return, $params) {
  * @param array  $params
  * @return mixed
  */
-function tidypics_permission_override($hook, $type, $result, $params) {
-       $entity = $params['entity'];
-       $user   = $params['user'];
-
-       if ($entity->subtype == get_subtype_id('object', 'album')) {
-               // test that the user can edit the container
-               return can_write_to_container(0, $entity->container_guid);
-       }
+function tidypics_group_permission_override($hook, $type, $result, $params) {
+       if (get_input('action') == 'photos/image/upload') {
+               if (isset($params['container'])) {
+                       $album = $params['container'];
+               } else {
+                       $album = $params['entity'];
+               }
 
-       if ($entity->subtype == get_subtype_id('object', 'image')) {
-               // test that the user can edit the container
-               return can_write_to_container(0, $entity->container_guid);
+               if (elgg_instanceof($album, 'object', 'album')) {
+                       return $album->getContainerEntity()->canWriteToContainer();
+               }
        }
 }
 
index 5c71e24f6f53e21e04aedbf156453e2c19336c30..f4bafce7803a9ab64d70d598f0ef9abad321c25a 100644 (file)
@@ -105,18 +105,6 @@ echo '</table>';
 echo '</div>';
 
 
-// Group albums
-echo '<h3>' . elgg_echo('tidypics:settings:heading:groups') . '</h3>';
-echo '<div>';
-$checked = $plugin->grp_perm_override ? 'checked' : false;
-echo elgg_view('input/checkbox', array(
-       'name' => "params[grp_perm_override]",
-       'value' => true,
-       'checked' => (bool)$plugin->grp_perm_override,
-));
-echo ' ' . elgg_echo("tidypics:settings:grp_perm_override");
-echo '</div>';
-
 
 echo elgg_view('input/submit', array('value' => elgg_echo("save")));