Example #1
0
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
Example #2
0
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
Example #3
0
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")
Example #4
0
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")