diff options
Diffstat (limited to 'coip/apps')
-rw-r--r-- | coip/apps/membership/forms.py | 9 | ||||
-rw-r--r-- | coip/apps/membership/views.py | 8 | ||||
-rw-r--r-- | coip/apps/userprofile/views.py | 15 |
3 files changed, 26 insertions, 6 deletions
diff --git a/coip/apps/membership/forms.py b/coip/apps/membership/forms.py index d9f7fe8..d44bb3b 100644 --- a/coip/apps/membership/forms.py +++ b/coip/apps/membership/forms.py @@ -5,16 +5,17 @@ Created on Jun 23, 2010 ''' from coip.apps.membership.models import Membership from form_utils.forms import BetterModelForm -from django.forms.fields import ChoiceField -from django.forms.widgets import Select, TextInput +from django.forms.fields import ChoiceField, CharField +from django.forms.widgets import Select, HiddenInput class MembershipForm(BetterModelForm): type = ChoiceField(choices=(("user","I'm adding a user to the group"),("entity","I'm adding a relying party (SP or IdP) to the group")), label="", widget=Select(attrs={'class':'link'}), required=False, initial="user") + username = CharField(label="Username") class Meta: model = Membership fields = ['entity','user'] widgets = { - 'user': TextInput() + 'user': HiddenInput() } fieldsets = [('type', {'fields': ['type'], 'legend': 'Which type of member are you adding to the group?', @@ -24,7 +25,7 @@ class MembershipForm(BetterModelForm): 'legend': 'Adding a federation entity to the group', 'description': 'Select the relying party you wish to add to the group.', 'classes': ['step','submit_step']}), - ('user', {'fields': ['user'], + ('user', {'fields': ['user','username'], 'legend': 'Adding a user to the group', 'description': 'Provide the federation identifier of the user you wish to join. That user must have already logged in at least once. To add a user that has not yet logged in, send an invitation instead.', 'classes': ['step','submit_step']}) diff --git a/coip/apps/membership/views.py b/coip/apps/membership/views.py index 7c4c4e1..dd505d2 100644 --- a/coip/apps/membership/views.py +++ b/coip/apps/membership/views.py @@ -34,7 +34,13 @@ def join(request,id,membername=None): m = Membership(name=name,enabled=True) form = MembershipForm(request.POST,instance=m) if form.is_valid(): - m = form.save() + if form.cleaned_data.has_key('user'): + add_member(name,form.cleaned_data['user']) + elif form.cleaned_data.has_key('entity'): + add_member(name,form.cleaned_data['entity']) + else: + raise Exception,"Bad form state - should not happen at all!" + return HttpResponseRedirect(name.url()) else: return respond_to(request, diff --git a/coip/apps/userprofile/views.py b/coip/apps/userprofile/views.py index 4660a52..3ca4416 100644 --- a/coip/apps/userprofile/views.py +++ b/coip/apps/userprofile/views.py @@ -6,13 +6,15 @@ Created on Jul 6, 2010 from django.contrib.auth.decorators import login_required from coip.apps.userprofile.models import PKey from django.http import HttpResponseRedirect -from coip.multiresponse import respond_to +from coip.multiresponse import respond_to, json_response from coip.apps.membership.models import Membership, add_member from coip.apps.userprofile.utils import user_profile from django.core.exceptions import ObjectDoesNotExist from pprint import pformat from coip.apps.auth.utils import nonce from coip.apps.name.models import Name, NameLink, lookup +from django.contrib.auth.models import User +from django.shortcuts import get_object_or_404 @login_required def merge(request,pkey=None): @@ -54,4 +56,15 @@ def home(request): return respond_to(request, {'text/html': 'apps/userprofile/home.html'},{'memberships': memberships,'names': names}) +@login_required +def search(request): + list = [] + if request.REQUEST.has_key('term'): + term = request.REQUEST['term'] + list = [{'label': user.username,'value': user.id} for user in User.objects.filter(username__contains=term)] + return json_response(list) +@login_required +def info(request,username): + user = get_object_or_404(User,username=username) + return json_response({'username': user.username});
\ No newline at end of file |