Пример #1
0
def login_box(request):
    from kay.auth import login

    next = unquote_plus(request.values.get("next"))
    owned_domain_hack = request.values.get("owned_domain_hack")
    message = ""
    form = LoginBoxForm()
    if request.method == "POST":
        if form.validate(request.form):
            result = login(request,
                           user_name=form.data['user_name'],
                           password=form.data['password'])
            if result:
                if owned_domain_hack == 'True':
                    original_host_url = unquote_plus(
                        request.values.get("original_host_url"))
                    url = original_host_url[:-1] + url_for("auth/post_session")
                    url += '?' + url_encode({
                        'session_id': result.key().name(),
                        'next': next
                    })
                    return redirect(url)
                else:
                    return redirect(next)
            else:
                message = _("Failed to login.")
    return render_to_response("auth/loginform.html", {
        "form": form.as_widget(),
        "message": message
    })
Пример #2
0
def login(request):
  from kay.auth import login

  if settings.AUTH_POST_LOGIN_SUCCESS_DEFAULT_URL:
  	next = unquote_plus(request.values.get("next", settings.AUTH_POST_LOGIN_SUCCESS_DEFAULT_URL))
  else:
  	next = unquote_plus(request.values.get("next", "/"))
  owned_domain_hack = request.values.get("owned_domain_hack")
  message = ""
  form = LoginForm()
  if request.method == "POST":
    if form.validate(request.form):
      result = login(request, user_name=form.data['user_name'],
                              password=form.data['password'])
      if result:
        if owned_domain_hack == 'True':
          original_host_url = unquote_plus(
            request.values.get("original_host_url"))
          url = original_host_url[:-1] + url_for("auth/post_session")
          url += '?' + url_encode({'session_id': result.key().name(),
                                   'next': next})
          return redirect(url)
        else:
          return redirect(next)
      else:
        message = _("Failed to login successfully with those credentials, try another or click the 'Forgot Password' link below.")
  return render_to_response("auth/loginform.html",
                            {"form": form.as_widget(),
                             "message": message})
Пример #3
0
def login_box(request):
  from kay.auth import login

  next = unquote_plus(request.values.get("next"))
  owned_domain_hack = request.values.get("owned_domain_hack")
  message = ""
  form = LoginBoxForm()
  if request.method == "POST":
    if form.validate(request.form):
      result = login(request, user_name=form.data['user_name'],
                              password=form.data['password'])
      if result:
        if owned_domain_hack == 'True':
          original_host_url = unquote_plus(
            request.values.get("original_host_url"))
          url = original_host_url[:-1] + url_for("auth/post_session")
          url += '?' + url_encode({'session_id': result.key().name(),
                                   'next': next})
          return redirect(url)
        else:
          return redirect(next)
      else:
        message = _("Failed to login.")
  return render_to_response("auth/loginform.html",
                            {"form": form.as_widget(),
                             "message": message})
Пример #4
0
def login(request):
    from kay.auth import login
    from settings import FACEBOOK_APP_ID, FACEBOOK_SECRET
    import facebook
    fb_uid = get_facebook_uid(request)
    if not fb_uid:
        return NotFound()
    result = login(request, fb_uid = fb_uid)
    auth = facebook.get_user_from_cookie(request.cookies, FACEBOOK_APP_ID, FACEBOOK_SECRET)
    if auth:
        access_token = auth['access_token']
        graph = facebook.GraphAPI(access_token)
        try:
            user = graph.get_object("me")
            logging.debug(user)
        except DownloadError:
            user = None
            logging.debug(access_token)
            logging.debug(graph)
            logging.debug(auth)
            logging.debug(fb_uid)
            logging.debug("some strange error occurred on app engine")
        if user:
            update_facebook_user(user = request.user, facebook_user_data = user)

    return redirect(request.referrer)
Пример #5
0
	def authorize(self, request, operation, obj=None, model_name=None,
					prop_name=None):
		from kay.auth import login
		from kay.exceptions import NotAuthorized
		import base64

		auth_header = request.headers.get('Authorization')
		if not auth_header: raise NotAuthorized

		(scheme, base64str) = auth_header.split(' ')
		if scheme != 'Basic': raise NotAuthorized

		(username, password) = base64.b64decode(base64str).split(':')
		result = login(request, user_name = username, password = password)
		if not result: raise NotAuthorized
		if not request.user.is_admin: raise NotAuthorized

		return True