Exemplo n.º 1
0
 def validate_temp_session(self, value):
   from yan.auth.models import TemporarySession
   try:
     session = TemporarySession.get(value)
     user = session.user
   except Exception, e:
     logging.warn(e)
     raise ValidationError(_(u"Invalid temporary session."))
Exemplo n.º 2
0
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:
      raise 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()})
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
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")
Exemplo n.º 5
0
 def store_user(self, user):
   from yan.auth.models import TemporarySession
   session = TemporarySession.get_new_session(user)
   return session