From: Thierry Parmentelat Date: Mon, 10 Dec 2012 20:27:21 +0000 (+0100) Subject: login/logout stuff working X-Git-Tag: myslice-django-0.1-1~146 X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=f72be702471054ae1469c293458b0adb1605418d login/logout stuff working --- diff --git a/auth/backend.py b/auth/backend.py index a09ef608..25114e73 100644 --- a/auth/backend.py +++ b/auth/backend.py @@ -26,8 +26,11 @@ class MyCustomBackend: # Check if the user exists in Django's local database user = User.objects.get(email=username) except User.DoesNotExist: + print 'creating django user',username # Create a user in Django's local database - user = User.objects.create_user(time.time(), username, 'passworddoesntmatter') + # warning: the trick here is pass current time as an id, and name as email + # create_user(username, email=None, password=None) + user = User.objects.create_user(time.time(), username, 'password-doesnt-matter') return user diff --git a/auth/views.py b/auth/views.py index 9d718504..d1e78b53 100644 --- a/auth/views.py +++ b/auth/views.py @@ -7,6 +7,8 @@ from django.http import HttpResponseRedirect from auth.backend import MyCustomBackend +from myslice.viewutils import the_user + def login_user(request): state = "Please log in below..." username = password = '' @@ -30,7 +32,8 @@ def login_user(request): return render_to_response('view-login.html',env, context_instance=RequestContext(request)) else: state='Welcome to MySlice' - env['state']=state; env['username']='' + env['state']=state + env['username']=the_user(request) 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 ? @@ -38,7 +41,8 @@ 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)) + return render_to_response('view-logout.html',{'username':the_user(request)}, + context_instance=RequestContext(request)) def do_logout_user (request): # xxx check that we're indeed logged in diff --git a/engine/plugin.py b/engine/plugin.py index a76881a2..7a8e7ece 100644 --- a/engine/plugin.py +++ b/engine/plugin.py @@ -28,10 +28,10 @@ class Plugin: # returns the html code for that plugin # in essence, wraps the results of self.render_content () - def render (self): + def render (self, request): uuid = self.uuid title = self.get_class() - plugin_content = self.render_content () + plugin_content = self.render_content (request) # xxx missing from the php version # compute an 'optionstr' from the set of available settings/options as a json string @@ -48,3 +48,7 @@ class Plugin: return result + ### abstract interface + def render_content (self, request): + """Should return an HTML fragment""" + return "Your plugin needs to redefine 'render_content(self, request)'" diff --git a/engine/views.py b/engine/views.py index 6d73a47c..d5020a90 100644 --- a/engine/views.py +++ b/engine/views.py @@ -12,7 +12,7 @@ from myslice.viewutils import menu_items, the_user def test_plugin_view (request): test_plugin = SimpleList (visible=True, hidable=True) - plugin_content = test_plugin.render () + plugin_content = test_plugin.render (request) print '--------------------' print plugin_content diff --git a/myslice/viewutils.py b/myslice/viewutils.py index 5360af53..fa3a603d 100644 --- a/myslice/viewutils.py +++ b/myslice/viewutils.py @@ -8,8 +8,8 @@ standard_menu_items = [ { 'label':'Slice view', 'href': '/slice/'}, { 'label':'Mini plugin', 'href': '/plugin/'}, ] -login_out_items = { False: { 'label':'Login', 'href':'/login/'}, - True: { 'label':'Logout', 'href':'/logout/'}} +#login_out_items = { False: { 'label':'Login', 'href':'/login/'}, +# True: { 'label':'Logout', 'href':'/logout/'}} def menu_items (current,request=None): result=deepcopy(standard_menu_items) @@ -17,15 +17,16 @@ def menu_items (current,request=None): 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] ) +# result.append (login_out_items [ has_user] ) return result def the_user (request): "This code below is broken" - return 'user-xxx-name' - if not request.user.is_authenticated (): return '' - else: return request.user.username - + if not request.user.is_authenticated (): + print 'void' + return '' + else: + return request.user.email # temporary for sample views lorem=""" diff --git a/plugins/simplelist.py b/plugins/simplelist.py index 202dc1b3..2e06f4e1 100644 --- a/plugins/simplelist.py +++ b/plugins/simplelist.py @@ -1,17 +1,8 @@ +from django.template.loader import render_to_string + from engine.plugin import Plugin class SimpleList (Plugin) : - def render_content (self): - return """""" + def render_content (self, request): + return render_to_string ("widget-simplelist.html",{}) diff --git a/static/css/logout.css b/static/css/logout.css new file mode 100644 index 00000000..c7869960 --- /dev/null +++ b/static/css/logout.css @@ -0,0 +1,5 @@ +a.logout { + font-size: 32; + margin:20px; + background-color: #fac; +} diff --git a/templates/widget-logout.html b/templates/widget-logout.html index 97e7a0ae..28e91bc2 100644 --- a/templates/widget-logout.html +++ b/templates/widget-logout.html @@ -1 +1,3 @@ -Confirm logout +{% insert_str prelude "css/logout.css" %} +

xxx This needs a bit of ironing out

+Confirm logout diff --git a/templates/widget-simplelist.html b/templates/widget-simplelist.html new file mode 100644 index 00000000..40ad0c14 --- /dev/null +++ b/templates/widget-simplelist.html @@ -0,0 +1,16 @@ +