def validate_temp_session(self, value): from kay.auth.models import TemporarySession try: session = TemporarySession.get(value) user = session.user except Exception, e: logging.warn(e) raise ValidationError(_(u"Invalid temporary session."))
def reset_password(request, session_key): form = ResetPasswordForm() if request.method == "GET": try: temporary_session = TemporarySession.get(session_key) except Exception: # BadKeyError ... etc temporary_session = None if temporary_session is None: return Forbidden("Temporary Session might be expired.") # TODO: acquire new temporary session new_session = TemporarySession.get_new_session(temporary_session.user) temporary_session.delete() form.data["temp_session"] = str(new_session.key()) elif request.method == "POST" and form.validate(request.form): new_session = TemporarySession.get(form["temp_session"]) user = new_session.user user.set_password(form["new_password"]) new_session.delete() return render_to_response("auth/reset_password_success.html") return render_to_response("auth/reset_password.html", {"form": form.as_widget()})
def reset_password(request, session_key): form = ResetPasswordForm() if request.method == 'GET': try: temporary_session = TemporarySession.get(session_key) except Exception: # BadKeyError ... etc temporary_session = None if temporary_session is None: return Forbidden("Temporary Session might be expired.") # TODO: acquire new temporary session new_session = TemporarySession.get_new_session(temporary_session.user) temporary_session.delete() form.data['temp_session'] = str(new_session.key()) elif request.method == 'POST' and form.validate(request.form): new_session = TemporarySession.get(form['temp_session']) user = new_session.user user.set_password(form['new_password']) new_session.delete() return render_to_response("auth/reset_password_success.html") return render_to_response("auth/reset_password.html", {"form": form.as_widget()})
def request_reset_password(request): form = ResetPasswordRequestForm() message = "" if request.method == "POST" and form.validate(request.form): try: auth_model_class = import_string(settings.AUTH_USER_MODEL) except (ImportError, AttributeError), e: raise ImproperlyConfigured, 'Failed to import %s: "%s".' % (settings.AUTH_USER_MODEL, e) user = auth_model_class.get_by_user_name(form["user_name"]) if user is None: return render_to_response("auth/no_such_user.html", {"user_name": form["user_name"]}) else: temporary_session = TemporarySession.get_new_session( user, additional_tq_url="_internal/send_reset_password_instruction", tq_kwargs={"user_key": user.key()} ) return render_to_response("auth/reset_password_finish.html")
def post_session(request): if request.method == "GET": from models import TemporarySession temporary_session = TemporarySession.get_by_key_name( request.values.get("session_id")) if temporary_session is not None: temporary_session.delete() import datetime allowed_datetime = datetime.datetime.now() - \ datetime.timedelta(seconds=10) if temporary_session.created > allowed_datetime: from kay.sessions import renew_session renew_session(request) request.session['_user'] = temporary_session.user.key() return redirect(unquote_plus(request.values.get('next'))) return Response("Error")
def request_reset_password(request): form = ResetPasswordRequestForm() message = "" if request.method == 'POST' and form.validate(request.form): try: auth_model_class = import_string(settings.AUTH_USER_MODEL) except (ImportError, AttributeError), e: raise ImproperlyConfigured, \ 'Failed to import %s: "%s".' % (settings.AUTH_USER_MODEL, e) user = auth_model_class.get_by_user_name(form['user_name']) if user is None: return render_to_response("auth/no_such_user.html", {"user_name": form["user_name"]}) else: temporary_session = TemporarySession.get_new_session( user, additional_tq_url='_internal/send_reset_password_instruction', tq_kwargs={"user_key": user.key()}) return render_to_response("auth/reset_password_finish.html")
def store_user(self, user): from kay.auth.models import TemporarySession session = TemporarySession.get_new_session(user) return session