Projet

Général

Profil

Bug #210

Problème de droits d'accès formulaire et back-office

Ajouté par Victor Claudet il y a plus de 13 ans. Mis à jour il y a presque 11 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
Début:
15 octobre 2010
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Planning:

Description

Sur mon site de démo, j'ai créé un rôle qui a le droit de remplir un formulaire et j'ai créé des utilisateurs qui sont associés à ce rôle.
Ces utilisateurs ont uniquement ce rôle et ne sont associés à aucun autre rôle.
Pourtant quand un utilisateur se logge, il a accès au lien back-office depuis son espace mon compte, alors qu'il n'a les droits en gestion sur aucun formulaire.
Le lien Back-office ne devrait pas apparaitre.


Fichiers

Révisions associées

Révision 1e30bcef (diff)
Ajouté par Thomas Noël il y a environ 12 ans

add an attribute "allows_backoffice_access" on roles

Historique

#1

Mis à jour par Thomas Noël il y a plus de 12 ans

Ce bogue est toujours vivant ?

#2

Mis à jour par Frédéric Péters il y a environ 12 ans

Je dirais que oui, vu dans auquo, myspace.ptl:

        if user.is_admin or user.roles:
            profile_links.append('<a href="%sbackoffice/">%s</a>' % (root_url, _('Back office')))

Par contre ce n'est pas follement évident d'automatiquement déterminer quels sont les rôles qui devraient mener à l'ajout de ce lien (ceux apparaissant en destinataire d'un formdef ou apparaissant en "by" d'un item de workflow, c'est un peu lourd à vérifier). Peut-être que le plus simple est alors d'ajouter une case à cocher "accès au backoffice" à la définition d'un rôle.

#3

Mis à jour par Thomas Noël il y a environ 12 ans

Frédéric Péters a écrit :

ajouter une case à cocher "accès au backoffice" à la définition d'un rôle.

Oui (et Victor aussi), même si c'est pas forcément super top, dans un premier temps ça va permettre de répondre à la demande.

La demande classique : avoir des formulaires accessibles uniquement pour un certain type d'utilisateurs (président d'association, commerçant, agent interne, etc.) qui n'auront jamais accès au backoffice.

#4

Mis à jour par Thomas Noël il y a environ 12 ans

  • Version cible mis à 81
#5

Mis à jour par Frédéric Péters il y a environ 12 ans

Approuvé à l'eocamp, pas de magie, même pas besoin d'un second temps.

#6

Mis à jour par Frédéric Péters il y a environ 12 ans

  • Assigné à mis à Thomas Noël
#7

Mis à jour par Frédéric Péters il y a environ 12 ans

"Autorisation d'accès au backoffice", case cochée par défaut.

#8

Mis à jour par Thomas Noël il y a environ 12 ans

Actuellement on a ce code :

    def can_go_in_backoffice(self):
        if self.is_admin:
            return True
        from formdef import FormDef
        formdefs = FormDef.select(lambda x: not x.is_disabled())
        for formdef_id in FormDef.keys():
            formdef = FormDef.get(formdef_id, ignore_errors=True)
            if formdef and not formdef.is_disabled() and formdef.receiver_id in (self.roles or []):
                return True
        return False

Je propose de complètement supprimer la detection "j'ai un role qui est destinataire" et de se baser UNIQUEMENT sur un test "j'ai au moins un role qui a accès au backoffice".

Ok avec ça ?

#9

Mis à jour par Frédéric Péters il y a environ 12 ans

Tout à fait.

#10

Mis à jour par Thomas Noël il y a environ 12 ans

  • Fichier wcs-roles-can-go-in-backoffice.diff ajouté

Voilà le patch pour w.c.s.

Si ok, je ferai celui pour auquo dans la foulée.

#11

Mis à jour par Frédéric Péters il y a environ 12 ans

Je ne suis pas fan du nom de l'attribut, trop proche de la méthode du même nom dans la classe User; allows_backoffice_access ?

#13

Mis à jour par Thomas Noël il y a environ 12 ans

  • Fichier wcs-roles-can-go-in-backoffice.diff supprimé
#14

Mis à jour par Frédéric Péters il y a environ 12 ans

C'est ok pour moi, go.

#15

Mis à jour par Thomas Noël il y a environ 12 ans

  • Statut changé de Nouveau à Résolu (à déployer)
#16

Mis à jour par Thomas Noël il y a environ 12 ans

  • Version cible changé de 81 à Au-quotidien 2012.2
#17

Mis à jour par Thomas Noël il y a environ 11 ans

  • Statut changé de Résolu (à déployer) à Fermé
#18

Mis à jour par Frédéric Péters il y a presque 11 ans

  • % réalisé changé de 0 à 100

Formats disponibles : Atom PDF