summaryrefslogtreecommitdiffstats
path: root/forum/views/users.py
diff options
context:
space:
mode:
authorhrcerqueira <hrcerqueira@gmail.com>2010-03-01 17:37:32 +0000
committerhrcerqueira <hrcerqueira@gmail.com>2010-03-01 17:37:32 +0000
commitd01a3ff31d96aaedd9ce8ba38cb5d0cde53584fc (patch)
treebc5cd0632fdb2edbde77a5ea0db2be4cdeaedc59 /forum/views/users.py
parent0d29fc79deba22027187ae4627a7c38b3fdef2e4 (diff)
downloadaskbot-d01a3ff31d96aaedd9ce8ba38cb5d0cde53584fc.tar.gz
askbot-d01a3ff31d96aaedd9ce8ba38cb5d0cde53584fc.tar.bz2
askbot-d01a3ff31d96aaedd9ce8ba38cb5d0cde53584fc.zip
New auth system, see the wiki for details.
Diffstat (limited to 'forum/views/users.py')
-rwxr-xr-x[-rw-r--r--]forum/views/users.py68
1 files changed, 65 insertions, 3 deletions
diff --git a/forum/views/users.py b/forum/views/users.py
index cc05c19e..baa8090b 100644..100755
--- a/forum/views/users.py
+++ b/forum/views/users.py
@@ -6,11 +6,13 @@ from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
-from django.http import HttpResponse, HttpResponseForbidden
+from django.http import HttpResponse, HttpResponseForbidden, HttpResponseRedirect, Http404
from django.utils.translation import ugettext as _
+from django.utils.http import urlquote_plus
from django.utils.html import strip_tags
from django.core.urlresolvers import reverse
-from forum.forms import *#incomplete list is EditUserForm, ModerateUserForm, TagFilterSelectionForm,
+from forum.forms import *#incomplete list is EditUserForm, ModerateUserForm, TagFilterSelectionForm,
+from forum.utils.html import sanitize_html
from forum import auth
import calendar
from django.contrib.contenttypes.models import ContentType
@@ -98,6 +100,14 @@ def moderate_user(request, id):
response = HttpResponseForbidden(mimetype="application/json")
return response
+def set_new_email(user, new_email, nomessage=False):
+ if new_email != user.email:
+ user.email = new_email
+ user.email_isvalid = False
+ user.save()
+ #if settings.EMAIL_VALIDATION == 'on':
+ # send_new_email_key(user,nomessage=nomessage)
+
@login_required
def edit_user(request, id):
user = get_object_or_404(User, id=id)
@@ -108,7 +118,6 @@ def edit_user(request, id):
if form.is_valid():
new_email = sanitize_html(form.cleaned_data['email'])
- from django_authopenid.views import set_new_email
set_new_email(user, new_email)
#user.username = sanitize_html(form.cleaned_data['username'])
@@ -945,3 +954,56 @@ def user(request, id):
func = user_view.view_func
return func(request, id, user_view)
+
+@login_required
+def changepw(request):
+ """
+ change password view.
+
+ url : /changepw/
+ template: authopenid/changepw.html
+ """
+ logging.debug('')
+ user_ = request.user
+
+ if not user_.has_usable_password():
+ raise Http404
+
+ if request.POST:
+ form = ChangePasswordForm(request.POST, user=user_)
+ if form.is_valid():
+ user_.set_password(form.cleaned_data['password1'])
+ user_.save()
+ msg = _("Password changed.")
+ redirect = "%s?msg=%s" % (
+ reverse('user_account_settings'),
+ urlquote_plus(msg))
+ return HttpResponseRedirect(redirect)
+ else:
+ form = ChangePasswordForm(user=user_)
+
+ return render_to_response('changepw.html', {'form': form },
+ context_instance=RequestContext(request))
+
+@login_required
+def account_settings(request):
+ """
+ index pages to changes some basic account settings :
+ - change password
+ - change email
+ - associate a new openid
+ - delete account
+
+ url : /
+
+ template : authopenid/settings.html
+ """
+ logging.debug('')
+ msg = request.GET.get('msg', '')
+ is_openid = False
+
+ return render_to_response('account_settings.html', {
+ 'msg': msg,
+ 'is_openid': is_openid
+ }, context_instance=RequestContext(request))
+