Re: Problem with sub-galleries and XP-publishing???

"Heath S. Hendrickson" <[email protected]>
Newsgroups gmane.comp.horde.ansel
Message-ID <[email protected]>
>>> Also, XP-publishing is still broken for me.  I'm not sure if it's 
>>> related to the same thing, but my guess is that it is...  I'll see 
>>> if I can do a quick fix, otherwise I'll leave it up to Ben to fix.
>>>
>>> h
>>
>> Attached are patches to xppublish.php and 
>> templates/xppublish/list.inc that accomodate the new output of 
>> Ansel::listGalleries().  I had to add a little extra code to deal 
>> with the different array format for groupby=owner, but not that much.
>
> Okay, scap that patch... I missed another place where I needed to make 
> the modifications... I'm thinking it'll just be easier to create a new 
> Ansel function called checkPerms($galleryId, $perm) that will return 
> True/False.  It'll save on processing overhead of calling 
> Ansel::listGalleries(PERM_EDIT) several times when all you need is to 
> know if the user has a certain permission for the gallery.
>
> h
>
Attached is a revised patch that makes use of the 
$gallery->hasPermission() call to check the permissions before selecting 
the gallery and subsequently publishing the photos... I tested it on my 
system and it works.  This way there is no klunky code to deal with 
groupby differences in listGalleries().

The previous patch for templates/xppublish/list.inc is still valid and 
needs to be applied, however.

h

-- 
ansel mailing list - Join the hunt: http://horde.org/bounties/#ansel
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [email protected]
xppublish.php.patch (text/plain, 2.1 KB)
Index: xppublish.php
===================================================================
RCS file: /usr/local/horde/cvs/ansel/xppublish.php,v
retrieving revision 1.18
diff -u -r1.18 xppublish.php
--- xppublish.php	4 Feb 2004 17:39:58 -0000	1.18
+++ xppublish.php	20 Mar 2004 06:08:26 -0000
@@ -83,12 +83,15 @@
 
 // Check if a gallery was selected from the list.
 if ($cmd == 'select') {
-    if (!$galleryId) {
-        $error = _("No gallery specified.") . "<br />\n";
-    } elseif (!array_key_exists($galleryId, Ansel::listGalleries(PERMS_EDIT))) {
-        $error = _("You cannot add photos in that gallery.");
+    if (!$galleryId || !$ansel_shares->exists($galleryId)) { 
+        $error = _("Invalid gallery specified.") . "<br />\n";
     } else {
-        $error = false;
+        $gallery = &$ansel_shares->getShare($galleryId);
+        if (is_a($gallery, 'PEAR_ERROR') || !$gallery->hasPermission(Auth::getAuth(), PERMS_EDIT)) {
+            $error = _("You cannot add photos in that gallery.");
+        } else {
+            $error = false;
+        }
     }
 
     if ($error) {
@@ -182,11 +185,17 @@
     $galleryId = Util::getFormData('gallery');
     $name = isset($_FILES['imagefile']['name']) ? $_FILES['imagefile']['name'] : null;
     $file = isset($_FILES['imagefile']['tmp_name']) ? $_FILES['imagefile']['tmp_name'] : null;
-    if (empty($galleryId)) {
-        $error = _("No gallery selected.");
-    } elseif (!array_key_exists($galleryId, Ansel::listGalleries(PERMS_EDIT))) {
-        $error = _("You cannot add to this gallery.");
-    } elseif (!$name) {
+    if (!$galleryId || !$ansel_shares->exists($galleryId)) { 
+        $error = _("Invalid gallery specified.") . "<br />\n";
+    } else {
+        $gallery = &$ansel_shares->getShare($galleryId);
+        if (is_a($gallery, 'PEAR_ERROR') || !$gallery->hasPermission(Auth::getAuth(), PERMS_EDIT)) {
+            $error = _("You cannot add photos in that gallery.");
+        } else {
+            $error = false;
+        }
+    }
+    if (!$name || $error) {
         $error = _("No file specified");
     } else {
         $fp = @fopen($file, 'rb');
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.