Projet

Général

Profil

Bug #37503

TypeError at /api/users/cf6c572dee184210a3af6a0067fbfe71/

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
06 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Trace Authentic qui dit :

File "/usr/lib/python2.7/dist-packages/authentic2/api_views.py" in handle_exception
  101.             response = super(ExceptionHandlerMixin, self).handle_exception(exc)

File "/usr/lib/python2.7/dist-packages/rest_framework/views.py" in dispatch
  454.             self.initial(request, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/rest_framework/views.py" in initial
  385.         self.check_permissions(request)

File "/usr/lib/python2.7/dist-packages/rest_framework/views.py" in check_permissions
  318.             if not permission.has_permission(request, self):

File "/usr/lib/python2.7/dist-packages/rest_framework/permissions.py" in has_permission
  47.         return request.user and request.user.is_authenticated()

Exception Type: TypeError at /api/users/cf6c572dee184210a3af6a0067fbfe71/
Exception Value: 'bool' object is not callable

Request information:
USER: Publik Service User

depuis :

commit a14ced4d18ce868b9b2d7a37ce4d937c734f09e6
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Sat Oct 5 10:30:04 2019 +0200

    dj22: use user.is_authenticated as a boolean (#36708)

Fichiers

Révisions associées

Révision ce798bc5 (diff)
Ajouté par Thomas Noël il y a plus de 4 ans

dj22: use user.is_authenticated as a boolean or callable (#37503)

Historique

#1

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

De ce que je comprends il faut plutôt partir vers des choses du genre :

from django.utils.deprecation import CallableFalse, CallableTrue

...

    @property
    def is_anonymous(self):
        return CallableFalse  ou CallableTrue, c'est selon

    @property
    def is_authenticated(self):
        return CallableTrue  ou  CallableFalse, c'est selon
#2

Mis à jour par Frédéric Péters il y a plus de 4 ans

Ça c'est la forme de transition, solution adaptée par django entre quelques versions pour marcher en booléen et en callable, mais je pense qu'on peut s'épargner la phase de transition, en restant comme on est, ou en basculant sur une version plus récente de djandorestframework (mais j'ai regardé et ça demande 3.7 qui me semble un saut en avant conséquent, et ça m'irait de revert côté hobo un temps).

#3

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

Deux propositions, en fait :

  • soit un simple revert de a14ced4, qui marchera forcément et nous remettra à l'aise
  • soit ce patch

sachant que le vrai boulot c'est en fait de passer à DRF 3.7

#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Yep transition vers djangorestframework 3.7 à venir mais pour le temps de passage passer par les CallableTrue/False c'est très bien.

#5

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit ce798bc5871dd45b383ab7e6c2ab08cac51f9bf0
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Nov 7 01:12:40 2019 +0100

    dj22: use user.is_authenticated as a boolean or callable (#37503)

#6

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF