from django.core.context_processors import csrf
from django.template import RequestContext
from django.shortcuts import render_to_response
-from django.contrib.auth import authenticate, login
+from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect
from auth.backend import MyCustomBackend
state='Welcome to MySlice'
env['state']=state; env['username']=''
return render_to_response('view-login.html',env, context_instance=RequestContext(request))
+
+# hard question : where should we redirect requests to logout if user is not logged in ?
+def logout_user (request):
+ # xxx check that we're indeed logged in
+ if not request.user.is_authenticated():
+ return HttpResponseRedirect ('/')
+ return render_to_response('view-logout.html',{},context_instance=RequestContext(request))
+
+def do_logout_user (request):
+ # xxx check that we're indeed logged in
+ if not request.user.is_authenticated():
+ return HttpResponseRedirect ('/')
+ logout(request)
+ return HttpResponseRedirect ('/')
+
+
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
(r'^/?$', 'slice.views.fake_slice_view'),
+ # seems to be what login_required uses to redirect ...
+ (r'^accounts/login/$', 'auth.views.login_user'),
(r'^login/?$', 'auth.views.login_user'),
+ (r'^logout/?$', 'auth.views.logout_user'),
+ (r'^logout/confirm/?$', 'auth.views.do_logout_user'),
(r'^slice/?$', 'slice.views.fake_slice_view'),
(r'^slice/(?P<name>[\w\.]+)/?$', 'slice.views.fake_slice_view'),
(r'^tab/?$', 'slice.views.tab_view'),
standard_menu_items = [ { 'label':'Tab view', 'href': '/tab/'},
{ 'label':'Slice view', 'href': '/slice/'},
{ 'label':'Scroll view', 'href': '/scroll/'},
- { 'label':'Login', 'href':'/login/'},
]
-def menu_items (current):
+login_out_items = { False: { 'label':'Login', 'href':'/login/'},
+ True: { 'label':'Logout', 'href':'/logout/'}}
+
+def menu_items (current,request=None):
result=deepcopy(standard_menu_items)
for d in result:
if d['label'].lower().find(current)>=0: d['active']=True
+ if not request: return result
+ has_user=request.user.is_authenticated()
+ result.append (login_out_items [ has_user] )
return result
-
hard_wired_slice_names = []
for site in [ 'inria', 'upmc' , 'ibbt' ]:
'name':name,
'slices': hard_wired_slice_names,
'content_main' : lorem,
- 'menu_items' : menu_items('slice'),
+ 'menu_items' : menu_items('slice',request),
},
context_instance=RequestContext(request))
def tab_view (request):
return render_to_response ('view-tab.html',
{ 'lorem': lorem,
- 'menu_items': menu_items('tab'),
+ 'menu_items': menu_items('tab',request),
},
context_instance=RequestContext(request))
def scroll_view (request):
return render_to_response ('view-scroll.html',
{ 'lorem':lorem,
- 'menu_items': menu_items('scroll'),
+ 'menu_items': menu_items('scroll',request),
},
context_instance=RequestContext(request))
--- /dev/null
+{% extends 'layout-myslice.html' %}
+
+{% block content_main %}
+{% include 'widget-logout.html' %}
+{% endblock %}
+
--- /dev/null
+<a href='/logout/confirm/'>Confirm logout</a>