source: spip-zone/_core_/plugins/urls_etendues/urls_pipeline.php @ 93431

Last change on this file since 93431 was 93431, checked in by cedric@…, 5 years ago

Report de r93430 : Utiliser partout autoriser(modifierurl) au lieu de autoriser(modifier) car cette derniere repond false quand l'objet n'existe plus en base, et dans ce cas precis on veut pouvoir supprimer l'URL
autoriser(modifierurl) verifie donc si l'objet existe encore en base et dans le cas contraire on s'en remet a autoriser(administrer,url)

File size: 2.3 KB
Line 
1<?php
2/***************************************************************************\
3 *  SPIP, Systeme de publication pour l'internet                           *
4 *                                                                         *
5 *  Copyright (c) 2001-2015                                                *
6 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14function urls_autoriser($f){return $f;}
15
16function autoriser_url_administrer($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
17        return (
18                isset($GLOBALS['meta']['urls_activer_controle'])
19                AND $GLOBALS['meta']['urls_activer_controle']=='oui'
20          AND $qui['statut']=='0minirezo'
21          AND !$qui['restreint']);
22}
23
24function autoriser_controlerurls_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
25        return autoriser('administrer','url');
26}
27
28function autoriser_modifierurl($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
29        if (autoriser('modifier',$type,$id,$qui,$opt)){
30                return true;
31        }
32
33        // si pas le droit de 'modifier', regarder d'un peu plus pres pourquoi
34        if (!$type OR !intval($id)) {
35                return false;
36        }
37        // verifier si l'objet existe encore en base
38        $table_sql = table_objet_sql($type);
39        $primary = id_table_objet($type);
40        if (!sql_countsel($table_sql,"$primary=".intval($id))){
41                return autoriser('administrer','url');
42        }
43        return false;
44}
45
46function urls_afficher_fiche_objet($flux){
47        if (isset($GLOBALS['meta']['urls_activer_controle'])
48                AND $GLOBALS['meta']['urls_activer_controle']=='oui'
49                AND $objet = $flux['args']['type']
50                AND $id_objet = $flux['args']['id']
51          AND objet_info($objet,'page')){
52                $p = strpos($flux['data'],'fiche_objet');
53                $p = strpos($flux['data'],'<!--/hd-->',$p);
54                //$p = strrpos(substr($flux['data'],0,$p),'<div');
55
56                $res = recuperer_fond('prive/objets/editer/url',array('id_objet'=>$id_objet,'objet'=>$objet),array('ajax'=>true));
57                $flux['data'] = substr_replace($flux['data'],$res, $p, 0);
58        }
59        return $flux;
60}
61?>
Note: See TracBrowser for help on using the repository browser.