CORD-1316: Implement new credentials system

Change-Id: Iaf869cc275fe78a3dd871dc45ef5bba55cde2027
diff --git a/xos/core/xoslib/objects/sliceplus.py b/xos/core/xoslib/objects/sliceplus.py
index 9d2868f..5086f79 100644
--- a/xos/core/xoslib/objects/sliceplus.py
+++ b/xos/core/xoslib/objects/sliceplus.py
@@ -1,4 +1,4 @@
-from core.models import Slice, SlicePrivilege, SliceRole, Instance, Site, Node, User
+from core.models import Slice, Privilege, SliceRole, Instance, Site, Node, User
 from plus import PlusObjectMixin
 from operator import itemgetter, attrgetter
 from rest_framework.exceptions import APIException
@@ -38,10 +38,11 @@
                     ready_sites[site.name] = ready_sites.get(site.name, 0) + 1
 
             users = {}
-            for priv in SlicePrivilege.objects.filter(slice=self):
-                if not (priv.user.id in users.keys()):
-                    users[priv.user.id] = {"name": priv.user.email, "id": priv.user.id, "roles": []}
-                users[priv.user.id]["roles"].append(priv.role.role)
+            for priv in Privilege.objects.filter(object_id=self.id, object_type='Slice', accessor_type='User'):
+                if not (priv.accessor_id in users.keys()):
+                    user = User.objects.get(pk=priv.accessor_id)
+                    users[priv.accessor_id] = {"name": user.email, "id": user.id, "roles": []}
+                users[priv.accessor_id]["roles"].append(priv.permission)
 
             # XXX this assumes there is only one network that can have ports bound
             # to it for a given slice. This is intended for the tenant view, which
@@ -118,7 +119,7 @@
         if user.is_admin:
             qs = SlicePlus.objects.all()
         else:
-            slice_ids = [sp.slice.id for sp in SlicePrivilege.objects.filter(user=user)]
+            slice_ids = [sp.slice.id for sp in Privilege.objects.filter(accessor_type='User',accessor_id=user.id, object_type='Slice')]
             qs = SlicePlus.objects.filter(id__in=slice_ids)
         return qs
 
@@ -231,12 +232,12 @@
         except:
             default_role = SliceRole.objects.get(role="default")
 
-        slice_privs = self.sliceprivileges.all()
-        slice_user_ids = [priv.user.id for priv in slice_privs]
+        slice_privs = Privilege.objects.filter(object_id=self.id, object_type='Slice', accessor_type='User')
+        slice_user_ids = [priv.accessor_id for priv in slice_privs]
 
         for user_id in new_users:
             if (user_id not in slice_user_ids):
-                priv = SlicePrivilege(slice=self, user=User.objects.get(id=user_id), role=default_role)
+                priv = Privilege(object_id=self.id, accessor_id=user_id, permission='role:'+default_role, accessor_type='User', object_type='Slice')
                 priv.caller = self.caller
                 if (not noAct):
                     priv.save()