def api_login(self): lpsust = request.values.get(settings.AUTH_LENOVOID.LENOVOID_WUST_NAME) rememberme = request.values.get("rememberme") if rememberme: rememberme = (rememberme.lower()=="true") or (rememberme=='1') if lpsust: f,d = authenticate(lpsust=lpsust) if f: from uliweb.utils.date import now user = d user.last_login = now() user.save() request.user = user session = functions.get_session() session[settings.AUTH_LENOVOID.SESSION_KEY_USER] = user.id if session.deleted: session.delete() else: if rememberme: timeout = settings.SESSION.remember_me_timeout session.set_expiry(timeout) else: timeout = settings.SESSION.timeout flag = session.save() return json({ settings.AUTH_LENOVOID.TOKEN_NAME: session.key, "timeout":timeout, } ) else: return json({"error_message": d.get("error_message")}, status = d.get("error_code")) return json({"error_message":"Fail to log in."}, status = 400)
def call_back(self): lpsust = request.values.get(settings.AUTH_LENOVOID.LENOVOID_WUST_NAME) lenovoid_action = request.values.get("lenovoid.action") if lenovoid_action == 'uilogout': Redirect("%s/login"%(settings.DOMAINS.default.get('url_prefix'))) rememberme = request.values.get("rememberme") error_message = "" if rememberme: rememberme = (rememberme.lower()=="true") or (rememberme=='1') if lpsust: f,d = authenticate(lpsust=lpsust) if f: from uliweb.contrib.auth import login user = d request.session.remember = rememberme login(user.username) next = urllib.unquote(request.GET.get('next', '%s/'%(settings.DOMAINS.default.get('url_prefix')))) return redirect(next) else: error_message = d.get("error_message") error_message = error_message if error_message else "Login failed." Redirect("%s/login?msg=%s"%(settings.DOMAINS.default.get('url_prefix'), error_message))