Permission error
Internal Server Error: /api/action-groups/
Traceback (most recent call last):
File "/var/www/united4earth/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/viewsets.py", line 116, in view
return self.dispatch(request, *args, **kwargs)
File "/var/www/djangoldp/djangoldp/views.py", line 136, in dispatch
response = super(LDPViewSet, self).dispatch(request, *args, **kwargs)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/views.py", line 495, in dispatch
response = self.handle_exception(exc)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/views.py", line 455, in handle_exception
self.raise_uncaught_exception(exc)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/views.py", line 492, in dispatch
response = handler(request, *args, **kwargs)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/mixins.py", line 48, in list
return Response(serializer.data)
File "/var/www/djangoldp/djangoldp/serializers.py", line 109, in data
return ReturnDict(super(ListSerializer, self).data, serializer=self)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 262, in data
self._data = self.to_representation(self.instance)
File "/var/www/djangoldp/djangoldp/serializers.py", line 38, in to_representation
'ldp:contains': super().to_representation(value),
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 686, in to_representation
self.child.to_representation(item) for item in iterable
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 686, in <listcomp>
self.child.to_representation(item) for item in iterable
File "/var/www/djangoldp/djangoldp/serializers.py", line 211, in to_representation
data = super().to_representation(obj)
File "/var/www/united4earth/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 530, in to_representation
ret[field.field_name] = field.to_representation(attribute)
File "/var/www/djangoldp/djangoldp/serializers.py", line 39, in to_representation
'permissions': Model.get_permissions(value.model, self.context['request'].user, ['view', 'add'])
File "/var/www/djangoldp/djangoldp/models.py", line 109, in get_permissions
permissions = permission_class().filter_user_perms(user_or_group, obj_or_model, permissions)
File "/var/www/djangoldp/djangoldp/permissions.py", line 44, in filter_user_perms
return [perm for perm in permissions if perm in self.user_permissions(user_or_group, obj)]
File "/var/www/djangoldp/djangoldp/permissions.py", line 44, in <listcomp>
return [perm for perm in permissions if perm in self.user_permissions(user_or_group, obj)]
File "/var/www/united4earth/data_manager/permissions.py", line 11, in user_permissions
if request.user in obj.actiongroup_set.get().members.all():
File "/var/www/united4earth/venv/lib/python3.6/site-packages/django/utils/functional.py", line 239, in inner
return func(self._wrapped, *args)
AttributeError: 'User' object has no attribute 'user'
[27/Mar/2019 07:41:52] "GET /api/action-groups/ HTTP/1.1" 500
I get that when trying to access the /api/action-groups/
URL with the last version of the server.
Models :
class ActionGroup(models.Model):
name = models.CharField(max_length=255, verbose_name=u"Nom du groupe")
objective = models.CharField(max_length=255, verbose_name=u"Objectif")
description = models.TextField(blank=True, null=True, verbose_name=u"Description")
place = models.TextField(blank=True, null=True, verbose_name=u"Lieu")
frequency = models.TextField(blank=True, null=True, verbose_name=u"Fréquence")
kind = models.TextField(blank=True, null=True, verbose_name=u"Type d'action")
image = models.URLField(verbose_name=u"Image", default=settings.SITE_URL + "static/img/action_group_blank.png")
representatives = models.ManyToManyField(Representative, blank=True, related_name='action_groups')
members = models.ManyToManyField(User, blank=True)
actiongroups = models.ManyToManyField("self", blank=True)
dates = models.ManyToManyField(ActionDate, blank=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='created_groups', blank=True, null=True)
conversation = models.ManyToManyField(Thread, blank=True)
loomios = models.ManyToManyField(LoomioTopic, blank=True)
slug = models.SlugField(blank=True, null=True, unique=True)
class Meta:
auto_author = 'author'
permissions = (
('view_actiongroup', 'Read'),
('control_actiongroup', 'Control'),
)
def nextdate(self):
nextdate = self.dates.filter(date__gte=datetime.today()).order_by("date").first()
if nextdate:
return str(nextdate)
elif len(self.dates.all()) == 0:
return 0
else:
return "exhausted"
def __str__(self):
return self.name
User._meta.serializer_fields = ['username', 'first_name', 'last_name', 'email']
URls :
url(r'^api/action-groups/', LDPViewSet.urls(
model=ActionGroup,
fields = [
'@id','name', 'author', 'objective', 'description', 'kind',
'place', 'frequency', 'image', 'representatives', 'members',
'actiongroups', 'dates', 'loomios', 'conversation', 'nextdate',
],
nested_fields=[
"author", "representatives", "dates", "loomios",
"actiongroups", "conversation",
],
permission_classes=(AnonymousReadOnly,),
# permission_classes=(),
), name='action_groups_sib'),
This commit introduced the problem : https://git.happy-dev.fr/startinblox/djangoldp-packages/djangoldp/commit/fbf1d1bca9313b6da5b09e8038e970193ea777fa