Commit 81e81577 by benjaoming

Simple account handling, log in, log out and sign up.

parent bfef21b3
...@@ -18,6 +18,8 @@ LOST_AND_FOUND_SLUG = getattr(django_settings, 'WIKI_LOST_AND_FOUND_SLUG', 'lost ...@@ -18,6 +18,8 @@ LOST_AND_FOUND_SLUG = getattr(django_settings, 'WIKI_LOST_AND_FOUND_SLUG', 'lost
LOG_IPS_ANONYMOUS = getattr(django_settings, 'WIKI_LOG_IPS_ANONYMOUS', True) LOG_IPS_ANONYMOUS = getattr(django_settings, 'WIKI_LOG_IPS_ANONYMOUS', True)
LOG_IPS_USERS = getattr(django_settings, 'WIKI_LOG_IPS_USERS', False) LOG_IPS_USERS = getattr(django_settings, 'WIKI_LOG_IPS_USERS', False)
ACCOUNT_HANDLING = getattr(django_settings, 'WIKI_ACCOUNT_HANDLING', True)
#################### ####################
# PLANNED SETTINGS # # PLANNED SETTINGS #
#################### ####################
......
{% extends "wiki/base.html" %}
{% load i18n wiki_tags %}
{% block pagetitle %}{% trans "Log in" %}{% endblock %}
{% block wiki_contents %}
<h1 class="page-header">{% trans "Please log in" %}</h1>
<form method="POST" class="form-horizontal">
{% wiki_form form %}
<div class="form-actions">
<button type="submit" name="save_changes" class="btn btn-primary btn-large">
<span class="icon-lock"></span>
{% trans "Log me in..." %}
</button>
</div>
</form>
{% endblock %}
{% extends "wiki/base.html" %}
{% load i18n wiki_tags %}
{% block pagetitle %}{% trans "Log in" %}{% endblock %}
{% block wiki_contents %}
<h1 class="page-header">{% trans "Sign up" %}</h1>
<form method="POST" class="form-horizontal">
{% wiki_form form %}
<div class="form-actions">
<button type="submit" name="save_changes" class="btn btn-primary btn-large">
<span class="icon-plus"></span>
{% trans "Sign me up..." %}
</button>
</div>
</form>
{% endblock %}
...@@ -61,14 +61,17 @@ ...@@ -61,14 +61,17 @@
<ul class="nav"> <ul class="nav">
{% include "wiki/plugins/notifications/menubaritem.html" %} {% include "wiki/plugins/notifications/menubaritem.html" %}
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle label label-inverse" data-toggle="dropdown">
<span class="icon-user"></span> <span class="icon-user"></span>
{{ user }} {{ user }}
<b class="caret"></b> <b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li> <li>
<a href="{% url 'admin:logout' %}">{% trans "Log out" %}</a> <a href="{% url 'wiki:logout' %}">
<span class="icon-off"></span>
{% trans "Log out" %}
</a>
</li> </li>
</ul> </ul>
</li> </li>
...@@ -76,7 +79,10 @@ ...@@ -76,7 +79,10 @@
{% else %} {% else %}
<ul class="nav"> <ul class="nav">
<li> <li>
<a href="{% url 'admin:index' %}">{% trans "Log in" %}</a> <a href="{% url 'wiki:login' %}">{% trans "Log in" %}</a>
</li>
<li>
<a href="{% url 'wiki:signup' %}">{% trans "Sign up" %}</a>
</li> </li>
</ul> </ul>
{% endif %} {% endif %}
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.conf.urls.defaults import patterns, url from django.conf.urls.defaults import patterns, url
from wiki.views import article from wiki.views import article, accounts
from wiki.conf import settings
urlpatterns = patterns('', urlpatterns = patterns('',
url('^$', article.ArticleView.as_view(), name='root', kwargs={'path': ''}), url('^$', article.ArticleView.as_view(), name='root', kwargs={'path': ''}),
url('^create-root/$', 'wiki.views.article.root_create', name='root_create'), url('^create-root/$', 'wiki.views.article.root_create', name='root_create'),
url('^_revision/diff/(\d+)/$', 'wiki.views.article.diff', name='diff'), url('^_revision/diff/(\d+)/$', 'wiki.views.article.diff', name='diff'),
)
if settings.ACCOUNT_HANDLING:
urlpatterns += patterns('',
url('^_accounts/sign-up/$', accounts.Signup.as_view(), name='signup'),
url('^_accounts/logout/$', accounts.Logout.as_view(), name='logout'),
url('^_accounts/login/$', accounts.Login.as_view(), name='login'),
)
urlpatterns += patterns('',
# This one doesn't work because it don't know where to redirect after... # This one doesn't work because it don't know where to redirect after...
url('^_revision/change/(?P<article_id>\d+)/(?P<revision_id>\d+)/$', 'wiki.views.article.change_revision', name='change_revision'), url('^_revision/change/(?P<article_id>\d+)/(?P<revision_id>\d+)/$', 'wiki.views.article.change_revision', name='change_revision'),
......
# -*- coding: utf-8 -*-
"""This is nothing but the usual handling of django user accounts, so
go ahead and replace it or disable it!"""
from django.contrib.auth.models import User
from django.contrib.auth import logout as auth_logout, login as auth_login
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.contrib import messages
from django.shortcuts import redirect
from django.utils.translation import ugettext as _
from django.views.generic.base import View
from django.views.generic.edit import CreateView, FormView
from wiki.models import URLPath
from django.core.urlresolvers import reverse
class Signup(CreateView):
model = User
form_class = UserCreationForm
template_name = "wiki/accounts/signup.html"
def get_success_url(self, *args):
messages.success(self.request, _(u'You are now sign up... and now you can sign in!'))
return reverse("wiki:login")
class Logout(View):
def get(self, request, *args, **kwargs):
auth_logout(request)
messages.info(request, _(u"You are no longer logged in. Bye bye!"))
print redirect("wiki:get_url", URLPath.root().path)
return redirect("wiki:get_url", URLPath.root().path)
class Login(FormView):
form_class = AuthenticationForm
template_name = "wiki/accounts/login.html"
def get_form_kwargs(self):
self.request.session.set_test_cookie()
kwargs = super(Login, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
def form_valid(self, form, *args, **kwargs):
auth_login(self.request, form.get_user())
messages.info(self.request, _(u"You are now logged in! Have fun!"))
if self.request.GET.get("next", None):
return redirect(self.request.GET['next'])
return redirect("wiki:get_url", URLPath.root().path)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment