diff options
-rw-r--r-- | coip/apps/name/models.py | 2 | ||||
-rw-r--r-- | coip/apps/name/views.py | 7 | ||||
-rw-r--r-- | coip/urls.py | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/coip/apps/name/models.py b/coip/apps/name/models.py index 0450e28..142cd5e 100644 --- a/coip/apps/name/models.py +++ b/coip/apps/name/models.py @@ -89,6 +89,8 @@ class Name(models.Model): def url(self): return "%s/name/%s" % (PREFIX_URL,self.display_str_url()) + def summary(self): + return {'name': self.display, 'url': self.url(), 'short': self.short} def remove(self,recursive=False): if recursive: diff --git a/coip/apps/name/views.py b/coip/apps/name/views.py index 21c658e..df669e7 100644 --- a/coip/apps/name/views.py +++ b/coip/apps/name/views.py @@ -14,6 +14,7 @@ import logging from coip.apps.name.forms import NameEditForm, NewNameForm, NameDeleteForm,\ PermissionForm from django.shortcuts import get_object_or_404 +from django.contrib.auth.models import User @login_required def delete(request,id): @@ -151,13 +152,17 @@ def show(request,name): invitations = name.invitations return respond_to(request, {'text/html': 'apps/name/name.html', - 'application/json': json_response({'name': name.display, 'url': name.url(), 'short': name.short}) }, + 'application/json': json_response(name.summary()) }, {'name': name, 'memberships':memberships, 'invitations':invitations}) else: return render403() +def user_groups(request,username): + user = get_object_or_404(User,username=username) + return json_response([link.src.summary() for link in NameLink.objects.filter(dst__memberships__user=user,type=NameLink.access_control,data__contains='i').all()]) + @login_required def show_by_name(request,name=None): if not name: diff --git a/coip/urls.py b/coip/urls.py index af51813..5d2c65d 100644 --- a/coip/urls.py +++ b/coip/urls.py @@ -26,6 +26,7 @@ urlpatterns = patterns('', (r'^user/merge/(?P<pkey>.+)$', 'coip.apps.userprofile.views.merge'), (r'^user/merge$', 'coip.apps.userprofile.views.merge'), (r'^user/home$', 'coip.apps.userprofile.views.home'), + (r'^user/(.+)/groups.json$', 'coip.apps.name.views.user_groups'), # Invitations (r'^name/(?P<id>[0-9]+)/invite$', 'coip.apps.invitation.views.invite'), (r'^invitation/(?P<id>[0-9]+)/cancel$', 'coip.apps.invitation.views.cancel'), |