You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2008-12-15 04:25:29

sarabanjina
Member
From: Belgium
Registered: 2008-12-13
Posts: 15

Edition de la base de connaissances avec des profils récursifs

Bonjour,

Je me pose la question suivante :
Est-il normal que si je crée un article dans la base de connaissance d'une entité A, visible dans toutes les sous-entités, je ne puisse pas l'éditer dans l'entité B, qui est une entité fille de l'entité A, sous un profil admin récursif sur toutes les entités?

Comment puis-je savoir dans quelle entité cet article a été créé et dans quelle entité je peux le modifier?

J'ai un peu regardé le code et je suis remonté à la fonction can dans le fichier inc/commondbtm.class.php qui ne semble pas gérer les droits récursifs en écriture. Par contre, cette fonction semble les gérer en lecture :
Lecture :

                                       // Check Global Right
                                        if ($this->canView()){
                                                // Is an item assign to an entity
                                                if ($this->entity_assign){
                                                        // Can be recursive check
                                                        if ($this->may_be_recursive){
                                                                return haveAccessToEntity($entity_to_check,$recursive_state_to_check);
                                                        } else { // Non recursive item
                                                                return haveAccessToEntity($entity_to_check);
                                                        }
                                                } else { // Global item
                                                        return true;
                                                }
                                        }

Ecriture :

                               } else {
                                        // Check Global Right
                                        if ($this->canCreate()){
                                                // Is an item assign to an entity
                                                if ($this->entity_assign){
                                                        // Have access to entity
                                                        return haveAccessToEntity($entity_to_check);
                                                } else { // Global item
                                                        return true;
                                                }
                                        }
                                }

Si je modifie la fonction en écriture, comme ceci :

                                        
                                                        // Can be recursive check
                                                        if ($this->may_be_recursive){
                                                                return haveAccessToEntity($entity_to_check,$recursive_state_to_check);
                                                        } else { // Non recursive item
                                                                return haveAccessToEntity($entity_to_check);
                                                        }

j'obtiens le comportement attendu, à savoir que je peux éditer l'article à partir de n'importe quelle entité.

Mais comme ce code est utilisé partout dans GLPI, je me demande si c'est un bug ou une fonctionnalité...

Merci d'avance,

Sarabanjina


GLPI 0.78.2 on Debian Etch 64 bits running on Xen 4.0

Offline

#2 2008-12-15 07:53:39

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: Edition de la base de connaissances avec des profils récursifs

Un objet récursif est en lecture seule dans les sous-entités.
Il faut être positionné sur son entité (ou une entité supérieure) pour pouvoir modifier l'objet.

C'est normal.


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

Board footer

Powered by FluxBB