summaryrefslogtreecommitdiff
path: root/coip/apps/opensocial/people.py
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/opensocial/people.py')
-rw-r--r--coip/apps/opensocial/people.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/coip/apps/opensocial/people.py b/coip/apps/opensocial/people.py
deleted file mode 100644
index a52fb9d..0000000
--- a/coip/apps/opensocial/people.py
+++ /dev/null
@@ -1,134 +0,0 @@
-'''
-Created on Jun 19, 2011
-
-@author: leifj
-'''
-from django.contrib.auth.models import User
-from coip.apps.opensocial.serializer import OpenSocialSerializer
-from django.conf.urls.defaults import url
-from coip.apps.membership.models import Membership
-from tastypie.fields import ToOneField
-from tastypie.utils.urls import trailing_slash
-from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
-from tastypie.http import HttpGone, HttpMultipleChoices
-from coip.apps.name.models import Name
-from tastypie.constants import ALL_WITH_RELATIONS
-from django.shortcuts import get_object_or_404
-import logging
-from pprint import pformat
-from coip.apps.opensocial.common import OpenSocialResource
-from tastypie.authorization import DjangoAuthorization
-
-class GroupResource(OpenSocialResource):
-
- class Meta:
- queryset = Name.objects.all()
- serializer = OpenSocialSerializer()
- resource_name = 'groups'
- fields = ['short','description','id']
- #authentication = OAuthAuthentication()
- #authorization = DjangoAuthorization()
-
- def override_urls(self):
- return [
- url(r"^(?P<resource_name>%s)/(?P<username>[\@\w\d_.-:]+)/(?P<name_id>[\d]+)%s?" % (self._meta.resource_name,trailing_slash()),
- self.wrap_view('list_memberships'), name="api_list_memberships"),
- url(r"^(?P<resource_name>%s)/(?P<username>[\@\w\d_.-:]+)%s" % (self._meta.resource_name,trailing_slash()),
- self.wrap_view('list_memberships'), name="api_list_memberships"),
- url(r"^(?P<resource_name>%s)%s" % (self._meta.resource_name,trailing_slash()),
- self.wrap_view('list_memberships'), name="api_list_memberships"),
- ]
-
- def list_memberships(self, request, **kwargs):
- logging.debug(pformat(kwargs))
- try:
- user = self.cached_obj_get(request=request, username=kwargs['username'])
- logging.debug(pformat(user))
- except ObjectDoesNotExist:
- return HttpGone()
- except MultipleObjectsReturned:
- return HttpMultipleChoices("More than one resource is found at this URI.")
-
- group_resource = GroupResource()
- if kwargs.has_key('name_id'):
- name_id = kwargs.pop('name_id')
- return group_resource.get_list(request=request, pk=name_id)
- else:
-
- return
-
-
- def dispatch(self, request_type, request, **kwargs):
- if kwargs.has_key('username') and kwargs['username'] == '@me':
- kwargs['username'] = request.user.username
- return super(GroupResource, self).dispatch(request_type, request, **kwargs)
-
-class MembershipResource(OpenSocialResource):
-
- user = ToOneField("coip.apps.opensocial.people.PersonResource",'user',full=True)
- name = ToOneField("coip.apps.opensocial.people.GroupResource",'name',full=False)
-
- class Meta:
- queryset = Membership.objects.all()
- serializer = OpenSocialSerializer()
- #authentication = OAuthAuthentication()
- #authorization = DjangoAuthorization()
- resource_name = 'membership'
- fields = ['user','name']
- filtering = {
- 'name': ALL_WITH_RELATIONS
- }
-
- def dehydrate(self,bundle):
- bundle = super(MembershipResource,self).dehydrate(bundle)
- del bundle.data['resource_uri']
- logging.debug(pformat(bundle))
- return bundle
-
-class PersonResource(OpenSocialResource):
-
- #memberships = ToManyField(MembershipResource,'memberships',full=True)
-
- class Meta:
- queryset = User.objects.all()
- #authentication = OAuthAuthentication()
- #authorization = DjangoAuthorization()
- fields = ['username']
- resource_name = 'people'
- serializer = OpenSocialSerializer()
-
- def override_urls(self):
- return [
- url(r"^(?P<resource_name>%s)/(?P<username>[\@\w\d_.-:]+)/(?P<name_id>[\d]+)%s?" % (self._meta.resource_name,trailing_slash()),
- self.wrap_view('list_memberships'), name="api_list_memberships"),
- url(r"^(?P<resource_name>%s)/(?P<username>[\@\w\d_.-:]+)(?:/\@self)?%s" % (self._meta.resource_name,trailing_slash()),
- self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
- ]
-
- def list_memberships(self, request, **kwargs):
- logging.debug(pformat(kwargs))
- try:
- user = self.cached_obj_get(request=request, username=kwargs['username'])
- logging.debug(pformat(user))
- except ObjectDoesNotExist:
- return HttpGone()
- except MultipleObjectsReturned:
- return HttpMultipleChoices("More than one resource is found at this URI.")
-
- people_resource = PersonResource()
- name_id = kwargs.pop('name_id')
- name = get_object_or_404(Name,id=name_id)
- return people_resource.get_list(request=request, memberships__name=name)
-
- def dispatch(self, request_type, request, **kwargs):
- if kwargs.has_key('username') and kwargs['username'] == '@me':
- kwargs['username'] = request.user.username
- return super(PersonResource, self).dispatch(request_type, request, **kwargs)
-
- def dehydrate(self,bundle):
- bundle = super(PersonResource,self).dehydrate(bundle)
- bundle.data['id'] = bundle.data['username']
- bundle.data['displayName'] = bundle.obj.get_profile().display_name
- del bundle.data['resource_uri']
- del bundle.data['username']
- return bundle \ No newline at end of file