Move to Django 1.5.
[redakcja.git] / apps / django_cas / backends.py
diff --git a/apps/django_cas/backends.py b/apps/django_cas/backends.py
deleted file mode 100644 (file)
index d55c9db..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-"""CAS authentication backend"""
-
-from urllib import urlencode, urlopen
-from urlparse import urljoin
-from django.conf import settings
-from django_cas.models import User
-
-__all__ = ['CASBackend']
-
-
-def _verify_cas1(ticket, service):
-    """Verifies CAS 1.0 authentication ticket.
-
-    Returns username on success and None on failure.
-    """
-
-    params = {'ticket': ticket, 'service': service}
-    url = (urljoin(settings.CAS_SERVER_URL, 'validate') + '?' +
-           urlencode(params))
-    page = urlopen(url)
-    try:
-        verified = page.readline().strip()
-        if verified == 'yes':
-            return page.readline().strip()
-        else:
-            return None
-    finally:
-        page.close()
-
-
-def _verify_cas2(ticket, service):
-    """Verifies CAS 2.0+ XML-based authentication ticket.
-
-    Returns username on success and None on failure.
-    """
-
-    try:
-        from lxml import etree as ElementTree
-    except ImportError:
-        from elementtree import ElementTree
-
-    params = {'ticket': ticket, 'service': service}
-    url = (urljoin(settings.CAS_SERVER_URL, 'serviceValidate') + '?' +
-           urlencode(params))
-    page = urlopen(url)
-    try:
-        response = page.read()
-        tree = ElementTree.fromstring(response)
-        if tree[0].tag.endswith('authenticationSuccess'):
-            return tree[0][0].text
-        else:
-            return None
-    except:
-        import traceback
-        traceback.print_exc()
-        print "****", url
-        print response
-        print "****"
-    finally:
-        page.close()
-
-
-_PROTOCOLS = {'1': _verify_cas1, '2': _verify_cas2}
-
-if settings.CAS_VERSION not in _PROTOCOLS:
-    raise ValueError('Unsupported CAS_VERSION %r' % settings.CAS_VERSION)
-
-_verify = _PROTOCOLS[settings.CAS_VERSION]
-
-
-class CASBackend(object):
-    """CAS authentication backend"""
-
-    def authenticate(self, ticket, service):
-        """Verifies CAS ticket and gets or creates User object"""
-
-        username = _verify(ticket, service)
-        if not username:
-            return None
-        try:
-            user = User.objects.get(username__iexact=username)
-        except User.DoesNotExist:
-            # user will have an "unusable" password
-            user = User.objects.create_user(username, '')
-            user.save()
-        return user
-
-    def get_user(self, user_id):
-        """Retrieve the user's entry in the User model if it exists"""
-
-        try:
-            return User.objects.get(pk=user_id)
-        except User.DoesNotExist:
-            return None