[Agora-devel] Pb sur les authorization ANPE

Erwan LE BESCOND elebescond at clever-age.com
Lun 5 Juil 11:14:42 CEST 2004


Stéphane PETIT wrote:

>D'apres l'ANPE, toute redacteur en chef ayant acces a toute les rubriques est un
>super big bosss qui a tout les droits (ou presque) ?!
>
>Pouquoi un tel utilsateur (redacteur en chef sans restriction) peut modifier les
>paramêtres contenu sur les pages config-contenu.php3 config-fonctions.php3 ?
>C'est le rôle d'un webmaster (et je confirme, pour ces actions, le poid dans la
>base est 8 pas 4)
>
>J'ai ouvert un bug a ce sujet, je vais y poser un correctif qui n'autorise que
>si le poids est suffisant. Si jamais c'est le comportement souhaiter par
>l'ANPE, il peuvent modifier les poids dans leur base de données.  
>
En effet il y a des soucis avec les nouveautés apportées par l'ANPE.

Il semble en effet que le test sur les poids (cf la table spip_action) 
ne soit pas fait pour toutes les actions.

Avant de continuer à corriger les problèmes et quitte à y passer du 
temps, Clever-age pense qu'il est nécessaire de remettre à propre ce module.

Pour cela nous comptons nous appuyer sur l'existant, et sur les ajouts 
apportés par l'ANPE (CACHE sur les autorisations).


Voici ce que nous proposons:

une classe AuthorizationAction proposera les méthodes principales suivantes:

    public isAuthorized($idUser, $parameters), cette méthode s'occupera 
de faire le test de comparaison entre le poids de l'action et le poids 
du profil de l'utilisateur.
Si le test est OK on lance la méthode:
   
    abstract isReallyAuthorized($parameters) pour faire les tests 
supplémentaires afin d'autoriser ou non l'action.

    private cacheAllowsRubrique($rubriqueId) de l'ANPE pour profiter du 
CACHE des droits sur les rubriques (Stockage en session)

Pour chaque action sera écrit une classe étendant AuthorizationAction. 
Cette classe devra implementer sa propre implementation de la méthode 
isReallyAuthorized().


Nous allons écrire l'authorization standard d'AGORA. Nous placerons 
celle-ci dans le repertoire ecrire/include/authorization/common/ .

Nous allons également créer un parametre de configuration dans le 
répertoire inc_config_metier.php (ou une META à discuter) pour définir 
quel type d'authorisation sera utilisée (par défaut common). Ainsi le 
passage d'un mode d'autorisation à un autre sera facile pour tout le monde.

Par exemple l'ANPE pourrait créer un répertoire 
ecrire/include/authorization/anpe/ et y stocker ses authorisations 
particulières.

La fonction recuperer_instance_authorization('nomAction') sera utilisé 
pour instancier les bonnes classes en fonction de la configuration.

Qu'en pensez-vous? Les questions sont les bienvenues...

Erwan LE BESCOND.



Plus d'informations sur la liste de diffusion Agora-devel