summaryrefslogtreecommitdiff
path: root/coip/apps/membership/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/membership/views.py')
-rw-r--r--coip/apps/membership/views.py77
1 files changed, 5 insertions, 72 deletions
diff --git a/coip/apps/membership/views.py b/coip/apps/membership/views.py
index 176f750..97c8c46 100644
--- a/coip/apps/membership/views.py
+++ b/coip/apps/membership/views.py
@@ -7,15 +7,11 @@ from django.shortcuts import get_object_or_404
from coip.apps.membership.models import Membership, add_member, remove_member
from coip.multiresponse import render403, respond_to
from django.contrib.auth.models import User
-from coip.apps.name.models import Name, lookup
+from coip.apps.name.models import Name
from django.http import HttpResponseRedirect
from django.core.exceptions import ObjectDoesNotExist
-from coip.apps.entity.models import Entity
from django.contrib.auth.decorators import login_required
from coip.apps.membership.forms import MembershipForm
-from coip.settings import METADATA
-from lxml import etree
-from pprint import pprint
def show(request,id):
membership = get_object_or_404(Membership,pk=id)
@@ -27,58 +23,6 @@ def show(request,id):
{'text/html': 'apps/membership/membership.html'},
{'membership': membership})
-def import_metadata():
- doc = etree.parse(METADATA)
- ns = {'md': 'urn:oasis:names:tc:SAML:2.0:metadata',
- 'xml': 'http://www.w3.org/XML/1998/namespace'}
- for e in doc.xpath("md:EntityDescriptor",namespaces=ns):
- entityId = e.get('entityID')
- display = entityId
- x = e.xpath("md:OrganizationDisplayName",namespaces=ns)
- if x:
- display = x[0]
-
- (entity,created) = Entity.objects.get_or_create(entityId=entityId)
- save = created
-
- if created:
- entity.type = Entity.OTHER
-
- x = e.xpath("md:SPSSODescriptor",namespaces=ns)
- if x:
- type = Entity.SP
- x = e.xpath("md:IDPSSODescriptor",namespaces=ns)
- if x:
- type = Entity.IDP
-
- if type != entity.type:
- entity.type = type
- save = True
-
- if display != entity.display_name:
- entity.display_name = display
- save = True
-
- if save:
- entity.save()
-
- anyuser = lookup("system:anyuser")
-
- anyentity = lookup("system:anyentity",True)
- anyentity.setacl(anyuser, "rl")
-
- anysp = lookup("system:anysp",True)
- anysp.setacl(anyuser, "rl")
-
- anyidp = lookup("system:anyidp",True)
- anyidp.setacl(anyuser, "rl")
-
- add_member(anyentity,entity)
- if entity.type == Entity.SP:
- add_member(anysp,entity)
- if entity.type == Entity.IDP:
- add_member(anyidp,entity)
-
@login_required
def join(request,id,membername=None):
name = get_object_or_404(Name,pk=id)
@@ -89,13 +33,7 @@ def join(request,id,membername=None):
m = Membership(name=name,enabled=True)
form = MembershipForm(request.POST,instance=m)
if form.is_valid():
- 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!"
-
+ add_member(name,form.cleaned_data['user'])
return HttpResponseRedirect(name.url())
else:
return respond_to(request,
@@ -103,15 +41,10 @@ def join(request,id,membername=None):
{'form': form,'name': name, 'formtitle': 'Add a member to %s' % name.short})
else:
if membername:
- try:
- member = User.objects.get(username=membername)
- except ObjectDoesNotExist:
- member = Entity.objects.get(entityId=name)
- add_member(name, member)
+ add_member(name, membername)
return HttpResponseRedirect(name.url())
else:
form = MembershipForm()
- import_metadata()
return respond_to(request,
{'text/html': 'apps/membership/edit.html'},
{'form': form,'name': name, 'formtitle': 'Add a member to %s' % name.short})
@@ -122,7 +55,7 @@ def leave(request,id,membername=None):
if membername:
try:
member = User.objects.get(username=membername)
+ remove_member(name, member)
except ObjectDoesNotExist:
- member = Entity.objects.get(entityId=name)
- remove_member(name, member)
+ pass
return HttpResponseRedirect(name.url())