flop25 a écrit:
bonjour
vous avez fait quoi ? mis l'album est privé, l'image en admin ou/et $conf['guest_access'] = false; ?
Lis la discussion en entier et teste avant de participer, ça nous évitera de nous répéter.
Hors ligne
nicolas a écrit:
flop25 a écrit:
bonjour
vous avez fait quoi ? mis l'album est privé, l'image en admin ou/et $conf['guest_access'] = false; ?Lis la discussion en entier et teste avant de participer, ça nous évitera de nous répéter.
ne t'inquiète pas j'applique mes principes à moi-même
je cite
Ma galerie est entièrement privée, aucun album n'est accessible sans authentification.
c'est ambigu et ce n'est pas précisé dans le ticket
ps: je demande aussi car je n'arrive pas à reproduire donc bon si tu veux un jour le bug corrigé...
Dernière modification par flop25 (2013-04-10 20:23:16)
Hors ligne
Je te prie alors de m'excuser.
Donc oui tous les albums sont privés. Tu vas sur la page des commentaires et tu fais une recherche exacte sur le nom d'un auteur de commentaire pour reproduire le problème.
Hors ligne
Merci flop25 d'avoir fait précisé le mode de permission utilisé. Je note que c'est par album et que les photos ont leur "qui peut voir cette photo ?" à "tout le monde" (images.level = 0).
Je regarde.
Hors ligne
plg a écrit:
Merci flop25 d'avoir fait précisé le mode de permission utilisé. Je note que c'est par album et que les photos ont leur "qui peut voir cette photo ?" à "tout le monde" (images.level = 0).
Je regarde.
Cela se passe évidemment dans le fichier comments.php. La requête sql construite ne tient pas compte de la clause excluant les catégories interdites (qui sont toutes interdites puisque tous les albums sont privés).
Je pense que c'est lié à la manière (surtout à l'ordre) dont sont faites les jointures.
Hors ligne
OK, bug reproduit et facile à corriger. Le problème c'est la prioriété des opérateurs dans le WHERE.
SELECT com.id AS comment_id, com.image_id, com.author, com.author_id, u.mail_address AS user_email, com.email, com.date, com.website_url, com.content, com.validated, category_id FROM piwigo_image_category AS ic INNER JOIN piwigo_comments AS com ON ic.image_id = com.image_id LEFT JOIN piwigo_users As u ON u.id = com.author_id WHERE u.username = 'plg' OR author = 'plg' AND 1=1 AND validated='true' AND (category_id NOT IN (1,3)) GROUP BY comment_id, com.image_id, com.author, com.author_id, com.date, com.content, com.validated ORDER BY date DESC LIMIT 10 OFFSET 0 ;
ca va beaucoup mieux quand on met "u.username = 'plg' OR author = 'plg'" entre parenthèses.
nicolas, tu m'as fait peur en écrivant que la requête ne tient pas compte des catégories interdites ! Je corrige en disant que si :
$page['where_clauses'][] = get_sql_condition_FandF ( array ( 'forbidden_categories' => 'category_id', 'visible_categories' => 'category_id', 'visible_images' => 'ic.image_id' ), '', true );
Hors ligne
plg a écrit:
ca va beaucoup mieux quand on met "u.username = 'plg' OR author = 'plg'" entre parenthèses.
nicolas, tu m'as fait peur en écrivant que la requête ne tient pas compte des catégories interdites ! Je corrige en disant que si :
Ce n'était pas pour te faire peur !! J'ai zappé le or du début du where. Bien vu.
Hors ligne
ha oui bien vu Pierrick :)
Super aussitôt vu, aussitôt corrigé ;)
Hors ligne
oui en 2.5.1
Hors ligne