Bug #58334
appel API vers une vue filtrant sur l'usager connecté → AttributeError: 'ApiAdminUser' object has no attribute 'id'
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
03 novembre 2021
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Exception: type = '<class 'AttributeError'>', value = ''ApiAdminUser' object has no attribute 'id'' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/backoffice/management.py", line 1665, in get_view_criterias 1663 elif filter_field.type == 'user-id': 1664 if filter_field_value == '__current__' and get_request().user: > 1665 filter_field_value = str(get_request().user.id) 1666 criterias.append(Equal('user_id', filter_field_value)) 1667 elif filter_field.type == 'submission-agent-id': locals: criterias = [] fake_fields = [<wcs.backoffice.management.FakeField object at 0x7fae0bd3d0b8>, <wcs.backoffice.management.FakeField object at 0x7fae0bd3de48>, <wcs.backoffice.management.FakeField object at 0x7fae0bd3d6d8>, <wcs.backoffice.management.FakeField object at 0x7fae0bd3de80>, <wcs.backoffice.management.FakeField object at 0x7fae0bd3dac8>, <wcs.backoffice.management.FakeField object at 0x7fae0bd0df28>] filter_field = <wcs.backoffice.management.FakeField object at 0x7fae0bd3dac8> filter_field_key = 'filter-user-value' filter_field_value = '__current__' filters_dict = {'filter-user': 'on', 'filter-user-value': '__current__', 'orig': 'quimper.test.entrouvert.org', 'algo': 'sha256', 'timestamp': '2021-11-03T08:29:54Z', 'nonce': '4c58cd01b25d0a9fb497ec32adcba3be', 'signature': 'VRMcUeFtAq72KLT28/dVLDag/Nr4FoxEM8uupaxTmmE='} name_id = None query_overrides = {'orig': 'quimper.test.entrouvert.org', 'algo': 'sha256', 'timestamp': '2021-11-03T08:29:54Z', 'nonce': '4c58cd01b25d0a9fb497ec32adcba3be', 'signature': 'VRMcUeFtAq72KLT28/dVLDag/Nr4FoxEM8uupaxTmmE='} request = <wcs.compat.CompatHTTPRequest object at 0x7fae0be486d8> request_form = {'orig': 'quimper.test.entrouvert.org', 'algo': 'sha256', 'timestamp': '2021-11-03T08:29:54Z', 'nonce': '4c58cd01b25d0a9fb497ec32adcba3be', 'signature': 'VRMcUeFtAq72KLT28/dVLDag/Nr4FoxEM8uupaxTmmE='} self = <wcs.api.ApiCardPage object at 0x7fae0bbb2828> File "/usr/lib/python3/dist-packages/wcs/backoffice/management.py", line 1569, in get_criterias_from_query 1567 def get_criterias_from_query(self): 1568 query_overrides = get_request().form > 1569 return self.get_view_criterias(query_overrides, request=get_request()) 1570 1571 def get_view_criterias(self, query_overrides=None, request=None): locals: query_overrides = {'orig': 'quimper.test.entrouvert.org', 'algo': 'sha256', 'timestamp': '2021-11-03T08:29:54Z', 'nonce': '4c58cd01b25d0a9fb497ec32adcba3be', 'signature': 'VRMcUeFtAq72KLT28/dVLDag/Nr4FoxEM8uupaxTmmE='} self = <wcs.api.ApiCardPage object at 0x7fae0bbb2828> File "/usr/lib/python3/dist-packages/wcs/backoffice/management.py", line 1997, in json 1995 user = get_user_from_api_query_string() or get_request().user if not anonymise else None 1996 selected_filter = self.get_filter_from_query(default='all') > 1997 criterias = self.get_criterias_from_query() 1998 order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) 1999 if self.view and not order_by: locals: anonymise = False selected_filter = 'all' self = <wcs.api.ApiCardPage object at 0x7fae0bbb2828> user = <wcs.api.ApiCardPage.check_access.<locals>.ApiAdminUser object at 0x7fae10251400> (...) PATH_INFO '/api/cards/atout-sport-associations/list/association-de-l-usager' QUERY_STRING 'orig=quimper.test.entrouvert.org&algo=sha256×tamp=2021-11-03T08%3A29%3A54Znonce=4c58cd01b25d0a9fb497ec32adcba3be&signature=VRMcUeFtAq72KLT28/dVLDag/Nr4FoxEM8uupaxTmmE%3D'
Historique
Mis à jour par Frédéric Péters il y a 5 mois
- Statut changé de Nouveau à Fermé
#77162 a ajouté un id à l'ApiAdminUser, donc ça ne planterait plus pareil, mais surtout il y a eu #68532 qui a fait que seuls les vrais utilisateurs étaient considérés :
- elif get_request().user: + elif isinstance(get_request().user, get_publisher().user_class): filter_field_value = str(get_request().user.id)