Skip to content
Extraits de code Groupes Projets
Valider aba9164d rédigé par cerdic's avatar cerdic Validation de marcimat
Parcourir les fichiers

fix: normaliser la fonction autoriser_document_voir() pour lui faire retourner...

fix: normaliser la fonction autoriser_document_voir() pour lui faire retourner uniquement true ou false

(cherry picked from commit 0bfaa1e6)
parent 23e68cbe
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -62,7 +62,8 @@ function contenu_document($arg, $charset = '') { ...@@ -62,7 +62,8 @@ function contenu_document($arg, $charset = '') {
function generer_url_document_dist($id_document, $args = '', $ancre = '') { function generer_url_document_dist($id_document, $args = '', $ancre = '') {
include_spip('inc/autoriser'); include_spip('inc/autoriser');
if (!autoriser('voir', 'document', $id_document)) { // si on a pas le droit de voir le document, meme via le htaccess
if (!autoriser('voir', 'document', $id_document, null, ['htaccess' => true])) {
return ''; return '';
} }
...@@ -78,10 +79,9 @@ function generer_url_document_dist($id_document, $args = '', $ancre = '') { ...@@ -78,10 +79,9 @@ function generer_url_document_dist($id_document, $args = '', $ancre = '') {
return $f; return $f;
} }
// Si droit de voir tous les docs, pas seulement celui-ci // Si droit de voir tous les docs, sans htaccess, pas seulement celui-ci
// il est inutilement couteux de rajouter une protection // il est inutilement couteux de rajouter une protection
$r = (autoriser('voir', 'document')); if (autoriser('voir', 'document')) {
if (($r and $r !== 'htaccess')) {
return get_spip_doc($f); return get_spip_doc($f);
} }
......
...@@ -267,6 +267,7 @@ function autoriser_document_supprimer_dist($faire, $type, $id, $qui, $opt) { ...@@ -267,6 +267,7 @@ function autoriser_document_supprimer_dist($faire, $type, $id, $qui, $opt) {
* @param int $id Identifiant de l'objet * @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation * @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation * @param array $opt Options de cette autorisation
* bool $htaccess : true pour tester l'autorisation de voir via le htaccess
* @return bool true s'il a le droit, false sinon * @return bool true s'il a le droit, false sinon
**/ **/
function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) { function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) {
...@@ -278,15 +279,18 @@ function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) { ...@@ -278,15 +279,18 @@ function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) {
return true; return true;
} }
if ((!is_numeric($id)) or $id < 0) { if (in_array($qui['statut'], ['0minirezo', '1comite'])) {
return false; return empty($opt['htaccess']) ? false : true;
} }
if (in_array($qui['statut'], ['0minirezo', '1comite'])) { if ((!is_numeric($id)) or $id < 0) {
return 'htaccess'; return false;
} }
if ($liens = sql_allfetsel('objet,id_objet', 'spip_documents_liens', 'id_document=' . intval($id))) { if (
!empty($opt['htaccess'])
&& ($liens = sql_allfetsel('objet,id_objet', 'spip_documents_liens', 'id_document=' . intval($id)))
) {
foreach ($liens as $l) { foreach ($liens as $l) {
$table_sql = table_objet_sql($l['objet']); $table_sql = table_objet_sql($l['objet']);
$id_table = id_table_objet($l['objet']); $id_table = id_table_objet($l['objet']);
...@@ -299,7 +303,7 @@ function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) { ...@@ -299,7 +303,7 @@ function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) {
: '') : '')
) > 0 ) > 0
) { ) {
return 'htaccess'; return true;
} }
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter