Skip to content
Extraits de code Groupes Projets
Valider 0bfaa1e6 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
parent ba63c8ce
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 = '') {
function generer_url_document_dist($id_document, $args = '', $ancre = '') {
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 '';
}
......@@ -78,10 +79,9 @@ function generer_url_document_dist($id_document, $args = '', $ancre = '') {
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
$r = (autoriser('voir', 'document'));
if (($r and $r !== 'htaccess')) {
if (autoriser('voir', 'document')) {
return get_spip_doc($f);
}
......
......@@ -267,6 +267,7 @@ function autoriser_document_supprimer_dist($faire, $type, $id, $qui, $opt) {
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'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
**/
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;
}
if ((!is_numeric($id)) or $id < 0) {
return false;
if (in_array($qui['statut'], ['0minirezo', '1comite'])) {
return empty($opt['htaccess']) ? false : true;
}
if (in_array($qui['statut'], ['0minirezo', '1comite'])) {
return 'htaccess';
if ((!is_numeric($id)) or $id < 0) {
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) {
$table_sql = table_objet_sql($l['objet']);
$id_table = id_table_objet($l['objet']);
......@@ -299,7 +303,7 @@ function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) {
: '')
) > 0
) {
return 'htaccess';
return true;
}
}
}
......
  • cerdic @cerdic

    mentioned in commit aba9164d

    ·

    mentioned in commit aba9164d

    Afficher/masquer la liste des validations
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter