summaryrefslogtreecommitdiff
path: root/coip/apps
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps')
-rw-r--r--coip/apps/membership/forms.py9
-rw-r--r--coip/apps/membership/views.py8
-rw-r--r--coip/apps/userprofile/views.py15
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