Merge branch 'vshulyak' into develop
authorAlex Kamedov <alex@kamedov.ru>
Wed, 27 Apr 2011 15:40:37 +0000 (21:40 +0600)
committerAlex Kamedov <alex@kamedov.ru>
Wed, 27 Apr 2011 15:40:37 +0000 (21:40 +0600)
README.rst
cas_provider/admin.py
cas_provider/views.py
setup.py

index 0ef1742..9e922c6 100644 (file)
@@ -5,26 +5,21 @@ django-cas-provider
 OVERVIEW
 =========
 
-django-cas-provider is a provider for the `Central Authentication 
-Service <http://jasig.org/cas>`_. It supports CAS version 1.0. It allows 
-remote services to authenticate users for the purposes of 
-Single Sign-On (SSO). For example, a user logs into a CAS server 
-(provided by django-cas-provider) and can then access other services 
-(such as email, calendar, etc) without re-entering her password for
-each service. For more details, see the `CAS wiki <http://www.ja-sig.org/wiki/display/CAS/Home>`_
-and `Single Sign-On on Wikipedia <http://en.wikipedia.org/wiki/Single_Sign_On>`_.
+django-cas-provider is a provider for the `Central Authentication Service <http://jasig.org/cas>`_. It supports CAS version 1.0 and parts of CAS version 2.0 protocol. It allows remote services to authenticate users for the purposes of Single Sign-On (SSO). For example, a user logs into a CAS server 
+(provided by django-cas-provider) and can then access other services (such as email, calendar, etc) without re-entering her password for each service. For more details, see the `CAS wiki <http://www.ja-sig.org/wiki/display/CAS/Home>`_ and `Single Sign-On on Wikipedia <http://en.wikipedia.org/wiki/Single_Sign_On>`_.
 
 INSTALLATION
 =============
 
-To install, run the following command from this directory:
+To install, run the following command from this directory::
 
-       ``python setup.py install``
+    python setup.py install
 
-Or, put cas_provider somewhere on your Python path.
+Or, put `cas_provider` somewhere on your Python path.
 
 If you want use CAS v.2 protocol or above, you must install `lxml` package to correct work.
 
+       
 USAGE
 ======
 
@@ -120,7 +115,7 @@ Attribute formatter callback takes two arguments:
 *  `attrs` - dictionary with user attributes received from callback specified in 
     CAS_CUSTOM_ATTRIBUTES_CALLBACK in project settings. 
 
-Example of generated XML below:
+Example of generated XML below::
  
      <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
          <cas:authenticationSuccess>
@@ -133,7 +128,7 @@ Example of generated XML below:
      </cas:serviceResponse>
 
 
-* Name-Value style (provided in `cas_provider.attribute_formatters.name_value`):
+* Name-Value style (provided in `cas_provider.attribute_formatters.name_value`)::
 
     <cas:attribute name='attraStyle' value='Name-Value' />
     <cas:attribute name='surname' value='Smith' />
@@ -142,7 +137,7 @@ Example of generated XML below:
     <cas:attribute name='memberOf' value='CN=Spanish Department,OU=Departments,OU=Groups,DC=example,DC=edu' />
 
 
-*  Jasig Style attributes (provided in `cas_provider.attribute_formatters.jasig`):
+*  Jasig Style attributes (provided in `cas_provider.attribute_formatters.jasig`)::
 
     <cas:attributes>
         <cas:attraStyle>Jasig</cas:attraStyle>
@@ -153,7 +148,7 @@ Example of generated XML below:
     </cas:attributes>
 
 
-* RubyCAS style (provided in `cas_provider.attribute_formatters.ruby_cas`):
+* RubyCAS style (provided in `cas_provider.attribute_formatters.ruby_cas`)::
 
     <cas:attraStyle>RubyCAS</cas:attraStyle>
     <cas:surname>Smith</cas:surname>
index b240d1f..f5058a4 100644 (file)
@@ -1,6 +1,7 @@
 from django.contrib import admin
 from models import *
 
+
 class ServiceTicketAdmin(admin.ModelAdmin):
     list_display = ('user', 'service', 'created')
     list_filter = ('created',)
index 4a7e9b8..d738dcd 100644 (file)
@@ -79,9 +79,12 @@ def validate(request):
     return HttpResponse("no\n\n")
 
 
-def logout(request, template_name='cas/logout.html'):
+def logout(request, template_name='cas/logout.html', auto_redirect=False):
     url = request.GET.get('url', None)
-    auth_logout(request)
+    if request.user.is_authenticated():
+        auth_logout(request)
+        if url and auto_redirect:
+            return HttpResponseRedirect(url)
     return render_to_response(template_name, {'url': url}, \
                               context_instance=RequestContext(request))
 
index 2d65aaf..06e5d4a 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -9,6 +9,7 @@ setup(
     author_email='chris@nitron.org',
     url='http://nitron.org/',
     packages=find_packages(),
+    include_package_data=True,
     zip_safe=False,
     install_requires=['setuptools'],
 )