Ignore:
Timestamp:
Mar 22, 2015, 4:53:51 PM (4 years ago)
Author:
tcharlss@…
Message:

Fonction pour "transvaser" les documents entre un album et le portfolio d'un objet (portfolio = tous les docs liés à l'objet, pas juste le groupe "porfolio". On se comprend.).
Autrement dit, ça permet de "transformer" un portfolio en album et inversement.
Pour l'instant, les boutons d'action correspondant ne sont pas intégrés dans l'interface, le temps de trouver comment faire ça proprement.
Il faut un libellé clair et pas trop long pour ces boutons (albumiser / désalbumiser ? transvaser ?...).
Quand les afficher : pour les admins, les rédacteurs ?
Que de questions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/albums/trunk/albums_autorisations.php

    r86553 r88148  
    324324 * Autorisation à supprimer définitivement un album.
    325325 *
    326  * Il faut qu'il soit vide et inutilisé, + non publié si on est pas admin complet
     326 * Il faut qu'il soit vide et inutilisé, et avoir le droit de le modifier ou être admin complet
    327327 *
    328328 * @param  string $faire Action demandée
     
    414414 * @param  array  $opts  Options de cette autorisation
    415415 *                       Doit contenir les clés `objet` et `id_objet`
    416  *                       pour rensigner le type et l'identifiant de l'objet
     416 *                       pour renseigner le type et l'identifiant de l'objet
    417417 * @return bool          true s'il a le droit, false sinon
    418418 */
     
    505505**/
    506506function autoriser_album_vider_dist($faire, $type, $id, $qui, $opts) {
     507
    507508        include_spip('action/editer_liens');
    508509        $rempli = count(objet_trouver_liens(array('document'=>'*'),array('album'=>$id)))>0;
    509510        $admin = $qui['statut']=='0minirezo' AND !$qui['restreint'];
    510511        $autoriser = ($admin AND $rempli) ? true : false;
     512
     513        return $autoriser;
     514}
     515
     516
     517/**
     518 * Autorisation de transvaser les documents d'un album
     519 *
     520 * Il faut que l'album soit lié à l'objet et
     521 * avoir le droit de modifier l'album et d'ajouter des documents ou être admin complet.
     522 *
     523 * @param  string $faire Action demandée
     524 * @param  string $type  Type d'objet sur lequel appliquer l'action
     525 * @param  int    $id    Identifiant de l'objet
     526 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     527 * @param  array  $opts  Options de cette autorisation
     528 *                       Doit contenir les clés `objet` et `id_objet`
     529 *                       pour renseigner le type et l'identifiant de l'objet
     530 * @return bool          true s'il a le droit, false sinon
     531**/
     532function autoriser_album_transvaser_dist($faire, $type, $id, $qui, $opts) {
     533
     534        include_spip('action/editer_liens');
     535        $objet = $opts['objet'];
     536        $id_objet = $opts['id_objet'];
     537        $liaison = (count(objet_trouver_liens(array('album'=>$id),array($objet=>$id_objet)))>0) ? true : false;
     538        $autoriser_modifier = autoriser('modifier','album',$id);
     539        $autoriser_joindredocument = autoriser('joindredocument',$objet,$id_objet);
     540        $admin = $qui['statut']=='0minirezo' AND !$qui['restreint'];
     541
     542        $autoriser = (
     543                $liaison
     544                AND
     545                (
     546                        (
     547                        $autoriser_modifier
     548                        AND $autoriser_joindredocument
     549                        )
     550                        OR
     551                        $admin
     552                )
     553        ) ? true : false;
     554
    511555        return $autoriser;
    512556}
Note: See TracChangeset for help on using the changeset viewer.