[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