diff --git a/djangoldp/models.py b/djangoldp/models.py index 493f3e34ae53edade8f233e2ebec8aaceefa3935..5443bd09bd1e4056cfbc009a2030342663e2548d 100644 --- a/djangoldp/models.py +++ b/djangoldp/models.py @@ -7,6 +7,7 @@ from django.utils.decorators import classonlymethod from djangoldp.permissions import LDPPermissions User._meta.rdf_type = "foaf:user" +User._meta.owner_field = "id" class Model(models.Model): diff --git a/djangoldp/permissions.py b/djangoldp/permissions.py index d6e8e92ba96b8c6f320e042a40273e2c9f01eff5..5a08ba16b3f31cbacad3d6d495ac09cd6a729d13 100644 --- a/djangoldp/permissions.py +++ b/djangoldp/permissions.py @@ -36,7 +36,7 @@ class LDPPermissions(BasePermission): return anonymous_perms else: - if obj and hasattr(model._meta, 'owner_field') and getattr(obj, getattr(model._meta, 'owner_field')) == user: + if obj and hasattr(model._meta, 'owner_field') and (getattr(obj, getattr(model._meta, 'owner_field')) == user or getattr(obj, getattr(model._meta, 'owner_field')) == user.id): return owner_perms else: @@ -82,6 +82,7 @@ class LDPPermissions(BasePermission): """ model = view.model perms = self.get_permissions(request.method, model) + try: obj = view.model.resolve_id(request._request.path) except: