getting closer
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 10 Dec 2012 15:57:58 +0000 (16:57 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 10 Dec 2012 15:57:58 +0000 (16:57 +0100)
auth/views.py
slice/views.py
static/css/mymenu.css [deleted file]
templates/layout-myslice.html
templates/view-login.html
templates/widget-topmenu.html

index eca1939..817fb63 100644 (file)
@@ -3,10 +3,15 @@ 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.http import HttpResponseRedirect
+
+from auth.backend import MyCustomBackend
 
 def login_user(request):
     state = "Please log in below..."
     username = password = ''
+    env={'hard_wired_users':MyCustomBackend.hard_wired_users}
+    
     if request.POST:
         username = request.POST.get('username')
         password = request.POST.get('password')
@@ -16,10 +21,16 @@ def login_user(request):
             if user.is_active:
                 login(request, user)
                 state = "You're successfully logged in!"
+                return HttpResponseRedirect ('/')
             else:
                 state = "Your account is not active, please contact the site admin."
+                env['state']=state; env['username']=username
+                return render_to_response('view-login.html',env, context_instance=RequestContext(request))
         else:
             state = "Your username and/or password were incorrect."
-
-    return render_to_response('view-login.html',{'state':state, 'username': username},
-                              context_instance=RequestContext(request))
+            env['state']=state; env['username']=username
+            return render_to_response('view-login.html',env, context_instance=RequestContext(request))
+    else:
+        state='Welcome to MySlice'
+        env['state']=state; env['username']=''
+        return render_to_response('view-login.html',env, context_instance=RequestContext(request))
index a057a05..9bfe1ab 100644 (file)
@@ -5,6 +5,7 @@ from django.core.context_processors import csrf
 from django.template import RequestContext
 from django.template.loader import render_to_string
 from django.shortcuts import render_to_response
+from django.contrib.auth.decorators import login_required
 
 lorem="""
 Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod <code>mazim placerat</code> facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.
@@ -20,7 +21,6 @@ def menu_items (current):
     result=deepcopy(standard_menu_items)
     for d in result:
         if d['label'].lower().find(current)>=0: d['active']=True
-    print "menu_items(%s)=%s"%(current,result)
     return result
     
 
@@ -29,6 +29,7 @@ for site in [ 'inria', 'upmc' , 'ibbt' ]:
     for slice in [ 'foo', 'bar', 'tutu', 'test', 'omf', 'heartbeat' ]:
         hard_wired_slice_names.append ("ple.%s.%s"%(site,slice))
 
+@login_required
 def fake_slice_view (request, name=None):
     result=render_to_response('view-slice.html',
                               {'foo':'var_foo_set_in_view', 
@@ -41,13 +42,15 @@ def fake_slice_view (request, name=None):
 
     return result
 
+@login_required
 def tab_view (request):
-    return render_to_response ('tab-view.html',
+    return render_to_response ('view-tab.html',
                                { 'lorem': lorem,
                                  'menu_items': menu_items('tab'),
                                  },
                                context_instance=RequestContext(request))
 
+@login_required
 def scroll_view (request):
     return render_to_response ('view-scroll.html',
                                { 'lorem':lorem,
diff --git a/static/css/mymenu.css b/static/css/mymenu.css
deleted file mode 100644 (file)
index 08db827..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#menu_ul {
-    position: absolute;
-    left: 0px;
-    margin: 15px;
-}
-#menu_logo {
-    position: absolute;
-    right:0px;
-    margin: 15px;
-}
-
index de2792e..d3a7436 100644 (file)
 {% block container %}
 <div id='container'>
 
-    <div id='header'>
-    {% block header %}
-      <a id='menu_logo' href="/"><img class="logo" src="{{ STATIC_URL }}img/myslice-logo.png" alt="MySlice" /></a>
-      {% include 'widget-topmenu.html' %}
-    {% endblock header %}
-    </div>
+    {% block topmenu %}
+    {% include 'widget-topmenu.html' %}
+    {% endblock topmenu %}
 
     <div id='content-main'>
       {% block content_main %}
index ed78463..6e3013c 100644 (file)
@@ -1,24 +1,17 @@
 {% extends 'layout-myslice.html' %}
 
 {% block content_related %}
-<p class='login-status'> {{ state }} </p>
-<a href="/" alt="Home"><img class="logo" src="{{ STATIC_URL }}img/myslice-logo.png" alt="MySlice" /></a>
-<form action="/login/" method="post">
-  {% csrf_token %}
-  {% if next %}
-  <input type="hidden" name="next" value="{{ next }}" />
-  {% endif %}
-  username:
-  <input type="text" name="username" value="{{ username}}" /><br />
-  password:
-  <input type="password" name="password" value="" /><br />
-  <input type="submit" value="Log In" />
-</form>
+{% include 'widget-login.html' %}
 {% endblock content_related %}
 
 {% block content_main %}
 <code>
 This page is currently not connected to any useful authentication system, but instead, as a proof of concept, it uses a set of hardwired user accounts, see auth/backend.py for more details.
 </code>
-
+<p>Currently hard wired users:</p>
+<ul>
+  {% for k,v in hard_wired_users.iteritems %}
+  <li class='well'> Name= <code>{{ k }}</code>, Password= <code>{{ v }}</code> </li>
+  {% endfor %}
+</ul>
 {% endblock content_main %}
index d7f4551..70cc149 100644 (file)
@@ -1,12 +1,23 @@
+{# <a id='menu_logo' href="/"><img class="logo" src="{{ STATIC_URL }}img/myslice-logo.png" alt="MySlice" /></a> #}
 {# {% insert_str prelude "js/mymenu.js" %} #}
-{% insert_str prelude "css/mymenu.css" %}
+{# {% insert_str prelude "css/mymenu.css" %} #}
 
-<ul class="nav nav-pills" id='menu_ul'>
-{% for d in menu_items %}
-  {% if d.active %}
-  <li class='active'> <a href="{{ d.href }}"> {{ d.label }} </a> </li>
-  {% else %}
-  <li class='other'> <a href="{{ d.href }}"> {{ d.label }} </a> </li>
-  {% endif %}
-  {% endfor %}
-</ul>
+<div id='topmenu' class="navbar navbar-fixed-top">
+  <div class="navbar-inner">
+    <div class="container-fluid">
+      <a class="brand" href="/"><img src="{{ STATIC_URL }}img/myslice-logo.png" height="30" alt="MySlice logo" /></a>
+      <div class="nav-collapse">
+       <ul class="nav nav-pills" id='menu_ul'>
+         {% for d in menu_items %}
+         {% if d.active %}
+         <li class='active'> <a href="{{ d.href }}"> {{ d.label }} </a> </li>
+         {% else %}
+         <li class='other'> <a href="{{ d.href }}"> {{ d.label }} </a> </li>
+         {% endif %}
+         {% endfor %}
+       </ul>
+       <p class="navbar-text pull-right">Logged in as <a href="#">username</a></p>
+      </div><!--/.nav-collapse -->
+    </div><!--container-fluid-->
+  </div><!--navbar-inner-->
+</div><!--topmenu-->