def login_on_server(request, user): try: if user is None: user = request.user if SESSION_KEY in request.session: if request.session[SESSION_KEY] != user.id: request.session.flush() else: request.session.cycle_key() request.session[SESSION_KEY] = user.id request.session[BACKEND_SESSION_KEY] = user.backend user_permission_codenames = get_permissions(user.id) perm_all = Permission.objects.all() disable_list = [ p.codename for p in perm_all if p.codename not in user_permission_codenames ] request.session['PERMISSION'] = user_permission_codenames request.session['DISABLE'] = disable_list if hasattr(request, 'user'): request.user = user user.last_login = datetime.datetime.now() user.save() except Exception, e: logger.error(str(e) + getTraceBack()) raise e
def login_on_server(request, user): try: if user is None: user = request.user if SESSION_KEY in request.session: if request.session[SESSION_KEY] != user.id: request.session.flush() else: request.session.cycle_key() request.session[SESSION_KEY] = user.id request.session[BACKEND_SESSION_KEY] = user.backend user_permission_codenames = get_permissions(user.id) perm_all = Permission.objects.all() disable_list = [p.codename for p in perm_all if p.codename not in user_permission_codenames] request.session['PERMISSION'] = user_permission_codenames request.session['DISABLE'] = disable_list if hasattr(request, 'user'): request.user = user user.last_login = datetime.datetime.now() user.save() except Exception, e: logger.error(str(e) + getTraceBack()) raise e
def login(request): if request.method == "GET": logger.info('跳转到登陆界面') if request.user.id is None: return render_to_response("system/login.html", locals(), context_instance=RequestContext(request)) return render_to_response('base.html', locals(), context_instance=RequestContext(request)) else: logger.info('点击登陆') response = {"success": False, "error": ""} try: username = request.POST.get("username") password = request.POST.get("password") user = authenticate(username=username, password=password) if user: is_active = user.is_active if not is_active: response["error"] = "用户未启用!" return HttpResponse(json.dumps(response), content_type="application/json") login_on_server(request, user) response["success"] = True response["error"] = "执行成功!" else: response["error"] = "登陆失败!" return render_to_response("system/login.html", locals(), context_instance=RequestContext(request)) return HttpResponseRedirect("/") except Exception as e: response["error"] = str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), content_type="application/json")
def login(request): if request.method == "GET": logger.info('跳转到登陆界面') if request.user.id is None: return render_to_response("system/login.html", locals(), context_instance=RequestContext(request)) return render_to_response('base.html', locals(), context_instance=RequestContext(request)) else: logger.info('点击登陆') response = {"success": False, "error": ""} try: username = request.POST.get("username") password = request.POST.get("password") user = authenticate(username=username, password=password) if user: is_active = user.is_active if not is_active: response["error"] = "用户未启用!" return HttpResponse(json.dumps(response), content_type="application/json") login_on_server(request, user) response["success"] = True response["error"] = "执行成功!" else: response["error"] = "登陆失败!" return render_to_response( "system/login.html", locals(), context_instance=RequestContext(request)) return HttpResponseRedirect("/") except Exception as e: response["error"] = str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), content_type="application/json")