diff options
author | hrcerqueira <hrcerqueira@gmail.com> | 2010-03-01 17:37:32 +0000 |
---|---|---|
committer | hrcerqueira <hrcerqueira@gmail.com> | 2010-03-01 17:37:32 +0000 |
commit | d01a3ff31d96aaedd9ce8ba38cb5d0cde53584fc (patch) | |
tree | bc5cd0632fdb2edbde77a5ea0db2be4cdeaedc59 /forum/views/users.py | |
parent | 0d29fc79deba22027187ae4627a7c38b3fdef2e4 (diff) | |
download | askbot-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.py | 68 |
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)) + |