Ignore:
Timestamp:
Feb 4, 2011, 10:52:01 PM (9 years ago)
Author:
cedric@…
Message:

report de r44136
prevoir que l'on peut rattacher un document a un autre. C'est une pre-figuration de la reorganisation des documents.
Dans spip_documents_liens id_document designe toujours l'enfant (dependant de) et (id_objet,objet) le parent.
Donc ici un document annexe (sous-titrage, licence, ..) est designe par id_document, et (id_objet,objet='document') pointe vers le document maitre.
Des variantes du mode 'vignette' sont donc a prevoir, pour les documents annexes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/medias/medias_autoriser.php

    r43934 r44157  
    4040        if (!autoriser('modifier','document',$id,$qui,$options))
    4141                return false;
    42 
     42       
    4343        if (!isset($options['document']) OR !$document = $options['document'])
    4444                $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    45 
     45       
    4646        // (on ne le propose pas pour les images qu'on sait
    4747        // lire : gif jpg png), sauf bug, ou document distant
     
    5151                AND $document['distant']!='oui')
    5252                return false;
    53 
     53       
    5454        // Donnees sur le type de document
    5555        $extension = $document['extension'];
     
    146146                OR !autoriser('ecrire','','',$qui))
    147147                return false;
     148
     149        // ne pas considerer les document parent
     150        // (cas des vignettes ou autre document annexe rattache a un document)
     151        if (sql_countsel('spip_documents_liens', "objet!='document' AND id_document=".intval($id)))
     152                return false;
     153
    148154        // si c'est une vignette, se ramener a l'autorisation de son parent
    149155        if (sql_getfetsel('mode','spip_documents','id_document='.intval($id))=='vignette'){
    150156                $id_document = sql_getfetsel('id_document','spip_documents','id_vignette='.intval($id));
    151           return !$id_document OR autoriser('modifier','document',$id_document);
    152         }
    153         if (sql_countsel('spip_documents_liens', 'id_document='.intval($id)))
    154                 return false;
     157                return !$id_document OR autoriser('modifier','document',$id_document);
     158        }
     159  // si c'est un document annexe, se ramener a l'autorisation de son parent
     160        if ($id_document=sql_getfetsel('id_objet','spip_documents_liens',"objet='document' AND id_document=".intval($id))){
     161                return autoriser('modifier','document',$id_document);
     162        }
    155163
    156164        return autoriser('modifier','document',$id,$qui,$opt);
     
    204212 * Autoriser a nettoyer les orphelins de la base des documents
    205213 * reserve aux admins complets
    206  * 
     214 *
    207215 * @param  $faire
    208216 * @param  $type
Note: See TracChangeset for help on using the changeset viewer.