Bug #20497
trace sur accès à /manage/roles/
0%
Description
Internal Server Error: /manage/roles/ Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view return view_func(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 71, in view return self.dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 111, in dispatch return super(PermissionMixin, self).dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 168, in dispatch self.search_form = self.get_search_form() File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 165, in get_search_form return form_class(**self.get_search_form_kwargs()) File "/usr/lib/python2.7/dist-packages/authentic2/manager/forms.py", line 386, in __init__ super(ServiceRoleSearchForm, self).__init__(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/authentic2/manager/forms.py", line 67, in __init__ super(PrefixFormMixin, self).__init__(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/authentic2/manager/forms.py", line 464, in __init__ data[ou_key] = str(self.ou_qs[0].pk) File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 184, in __getitem__ return self._result_cache[k] IndexError: list index out of range
Historique
Mis à jour par Frédéric Péters il y a plus de 6 ans
La trace complète est sans doute utile, on y lit notamment "Error in formatting: AttributeError: 'RoleSearchForm' object has no attribute '_errors'".
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Benjamin Dauvergne
Le problème est identifié, dans le cas d'un utilisateur qui n'a un droit d'administration que sur un seul rôle, et non pas sur tous les rôles d'un OU ou plusieurs OU, ça ne marche pas, il faudrait complètement retirer le sélecteur d'OU, ou alors il faut que je change la façon de lister les OUs, au lieu de user.ous_with_perm('a2_rbac.search_role')
il faudrait que je fasse OU.objects.filter(role=user.filter_by_perm('a2_rbac.search_role', roles))
, en fait c'est vrai pour les utilisateurs aussi (même si pour l'instant on ne donne jamais à personne le droit d'éditer un unique utilisateur).
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Statut changé de En cours à Fermé
Corrigé par #20511.