# HG changeset patch # User cavaliet # Date 1355919814 -3600 # Node ID ebaf7878c756ff54575e7380649e3496c1c1c754 # Parent 729a6ee4ea1c056a77221e25321b39f0d42bb23d logout view and regexp for username creation. diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/__init__.py --- a/src/hashcut/__init__.py Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/__init__.py Wed Dec 19 13:23:34 2012 +0100 @@ -1,4 +1,4 @@ -VERSION = (0, 8, 0, "final", 0) +VERSION = (0, 9, 0, "final", 0) def get_version(): diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/static/hashcut/bpi/css/common.css --- a/src/hashcut/static/hashcut/bpi/css/common.css Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/static/hashcut/bpi/css/common.css Wed Dec 19 13:23:34 2012 +0100 @@ -340,7 +340,7 @@ } /* popin - user - signup */ -.signup-button{ +.signup-button, .logout-button{ background-color: #de2500; } .user .popin-content{ diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/static/hashcut/iri/css/common.css --- a/src/hashcut/static/hashcut/iri/css/common.css Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/static/hashcut/iri/css/common.css Wed Dec 19 13:23:34 2012 +0100 @@ -340,7 +340,7 @@ } /* popin - user - signup */ -.signup-button{ +.signup-button, .logout-button{ background-color: #de2500; } .user .popin-content{ diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/templates/partial/mashup_popin_user.html --- a/src/hashcut/templates/partial/mashup_popin_user.html Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/templates/partial/mashup_popin_user.html Wed Dec 19 13:23:34 2012 +0100 @@ -12,6 +12,9 @@

{% trans 'Switch account' %}

+

+ {% trans 'Log out' %} +

{% endif %}
diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/urls.py --- a/src/hashcut/urls.py Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/urls.py Wed Dec 19 13:23:34 2012 +0100 @@ -1,6 +1,6 @@ from django.conf.urls.defaults import patterns, url from hashcut.views import MashupHome, MashupEdit, MashupHashcut, MashupContent, MashupProfile, MashupAllMashups,\ - MashupAllContents, MashupCreateUser, MashupIdenticateUser + MashupAllContents, MashupCreateUser, MashupIdenticateUser, MashupLogOut urlpatterns = patterns('', url(r'^jsi18n/(?P\S+?)/$', 'django.views.i18n.javascript_catalog', name='jsi18n'), @@ -13,6 +13,7 @@ url(r'^(?P.*)/allcontents/$', MashupAllContents.as_view(), name="mashup_all_contents"), url(r'^(?P.*)/createuser/$', MashupCreateUser.as_view(), name="mashup_create_user"), url(r'^(?P.*)/iduser/$', MashupIdenticateUser.as_view(), name="mashup_identicate_user"), + url(r'^(?P.*)/logout/$', MashupLogOut.as_view(), name="mashup_logout"), url(r'^(?P.*)/$', MashupHome.as_view(), name="mashup_home"), url(r'^$', MashupHome.as_view()), ) diff -r 729a6ee4ea1c -r ebaf7878c756 src/hashcut/views.py --- a/src/hashcut/views.py Thu Dec 06 17:07:49 2012 +0100 +++ b/src/hashcut/views.py Wed Dec 19 13:23:34 2012 +0100 @@ -1,16 +1,17 @@ from django.conf import settings -from django.contrib.auth import authenticate, login +from django.contrib.auth import authenticate, login, logout +from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist from django.core.paginator import Paginator, InvalidPage, EmptyPage from django.http import HttpResponseNotFound, HttpResponse +from django.shortcuts import redirect from django.views.generic.base import View, TemplateResponseMixin +from hashcut.models import Mashup, Branding from ldt.api.ldt.resources import ProjectResource from ldt.ldt_utils.models import Project, Content from ldt.security.cache import cached_assign import logging -from hashcut.models import Mashup, Branding -from django.contrib.auth.models import User -from django.shortcuts import redirect +import re class MashupContextView(View): @@ -222,6 +223,8 @@ u_email = request.POST["signup-email"] u_pwd1 = request.POST["signup-password"] u_pwd2 = request.POST["signup-confirm-password"] + if not re.match(r'^[a-zA-Z0-9]*$', u_username): + return HttpResponse("Username not valid : only letters a-z A-Z and numbers.") if u_pwd1 == "" or u_pwd1 != u_pwd2: return HttpResponse("Password don't match.") u = None @@ -265,5 +268,14 @@ return HttpResponse("Problem in authentication. User and password don't match.") return redirect('mashup_home', branding=branding) + + +class MashupLogOut(MashupHome): + + def get(self, request, branding="iri", **kwargs): + logout(request) + return redirect('mashup_home', branding=branding) + + \ No newline at end of file