From 6b034e865988b55d3b75ffec447f3e10ca5fd0c9 Mon Sep 17 00:00:00 2001
From: Thibaud Duquennoy <thibaud@duquennoy.fr>
Date: Fri, 25 Jan 2019 15:48:00 +0100
Subject: [PATCH] Fix bug #74: Container include a @type": "ldp:Container"

Changed the behavior of the serialization in LDListMixin tho that it includes @type: ldp:Container
---
 README.md                | 33 ++++++++++-----------------------
 djangoldp/serializers.py |  1 +
 2 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/README.md b/README.md
index 17b3fabe..07ac1cf2 100644
--- a/README.md
+++ b/README.md
@@ -147,12 +147,14 @@ class MyModel(models.Model):
 ## permissions
 This allows you to add permissions for AnonymousUser, logged in user, author ... in the url:
 Currently, there are 3 choices :
-* PublicPostPermissions
-* PrivateProjectPermissions
-* NotificationsPermissions
+* ObjectPermission
+* AnonymousReadOnly
+* InboxPermissions
 Specific permissin classes can be developed to fit special needs.
 
-PublicPostPermissions gives these permissions: 
+ObjectPermission give permissions assign in the administration
+
+AnonymousReadOnly gives these permissions: 
 * Anonymous users: can read all posts
 * Logged in users: can read all posts + create new posts
 * Author: can read all posts + create new posts + update their own
@@ -160,30 +162,15 @@ PublicPostPermissions gives these permissions:
 ```
 from django.conf.urls import url
 from djangoldp.views import LDPViewSet
-from djangoldp.permissions import PublicPostPermissions
+from djangoldp.permissions import AnonymousReadOnly
 
 urlpatterns = [
-    url(r'^projects/', ProjectViewSet.urls(permission_classes=(PublicPostPermissions,))),
+    url(r'^projects/', ProjectViewSet.urls(permission_classes=(AnonymousReadOnly,))),
     url(r'^customers/', LDPViewSet.urls(model=Customer)),
 ]
 ```
 
-PrivateProjectPermissions provides the following
-* Anonymous users: no permissions
-* Logged in users: can read projects if they're in the team
-* Users of group Partners: can see all projects + update all projects
-
-```
-from django.conf.urls import url
-from djangoldp.views import LDPViewSet
-from djangoldp.permissions import PrivateProjectPermissions
-
-urlpatterns = [
-    url(r'^projects/', ProjectViewSet.urls(permission_classes=(PrivateProjectPermissions,))),
-    url(r'^customers/', LDPViewSet.urls(model=Customer)),
-]
-```
-NotificationsPermissions is used for, well, notifications:
+InboxPermissions is used for, well, notifications:
 * Anonymous users: can create notifications but can't read
 * Logged in users: can create notifications but can't read
 * Inbox owners: can read + update all notifications 
@@ -194,7 +181,7 @@ from djangoldp.views import LDPViewSet
 from djangoldp.permissions import NotificationsPermissions
 
 urlpatterns = [
-    url(r'^projects/', ProjectViewSet.urls(permission_classes=(NotificationsPermissions,))),
+    url(r'^projects/', ProjectViewSet.urls(permission_classes=(InboxPermissions,))),
     url(r'^customers/', LDPViewSet.urls(model=Customer)),
 ]
 ```
diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py
index 54c599c6..f6318c28 100644
--- a/djangoldp/serializers.py
+++ b/djangoldp/serializers.py
@@ -183,6 +183,7 @@ class LDPSerializer(HyperlinkedModelSerializer):
 
     def to_representation(self, obj):
         data = super().to_representation(obj)
+
         if hasattr(obj._meta, 'rdf_type'):
             data['@type'] = obj._meta.rdf_type
         data['permissions'] = [{'mode': {'@type': name.split('_')[0]}} for name in
-- 
GitLab