Changeset 109310 in spip-zone


Ignore:
Timestamp:
Mar 5, 2018, 12:14:15 AM (17 months ago)
Author:
tcharlss@…
Message:

Action dissocier_document_role : fix pour la suppression. Avant la suppression, on supprime tous les liens, et pour ça il faut explicitement donner le rôle '*' à objet_dissocier().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/roles_documents/trunk/action/dissocier_document_role.php

    r109249 r109310  
    9494        // D'abord on ne supprime pas, on dissocie
    9595        include_spip('action/editer_liens');
    96         if ($role) {
     96        // pas de suppression et rôle : on ne dissocie que ce rôle
     97        if (!$supprime and $role) {
    9798                $condition = array('role' => $role);
    98         } else {
     99        // pas de suppression et pas de rôle : on dissocie tous les rôles non principaux
     100        } elseif(!$supprime and !$role) {
    99101                $roles = roles_documents_presents_sur_objet($objet, $id_objet, 0, false); // rôles possibles non principaux
    100102                $condition = array('role' => $roles['possibles']);
     103        // suppression : on dissocie tout
     104        } else {
     105                $condition = array('role' => '*');
    101106        }
    102107        objet_dissocier(array('document' => $id_document), array($objet => $id_objet), $condition);
     
    145150        // ici on ne bloque pas la suppression d'un document rattache a un autre
    146151        if ($supprime and !sql_countsel('spip_documents_liens', "objet!='document' AND id_document=" . $id_document)) {
     152                return;
    147153                $supprimer_document = charger_fonction('supprimer_document', 'action');
    148154
Note: See TracChangeset for help on using the changeset viewer.