示例#1
0
def login(request):
    # 不接受POST请求
    if request.method != 'GET':
        raise Http404()

    account = AccountFactory.getAccountObj()
    return account.login(request)
示例#2
0
    def authenticate(self, ticket=None, request=None):
        account = AccountFactory.getAccountObj()
        status, user = account.check_backend_login_status(request)

        if not status or not user:
            return None

        return user
示例#3
0
 def process_response(self, request, response):
     """
     统一处理response请求
     """
     account = AccountFactory.getAccountObj()
     # 统一处理 response, 包括 cookie、session 等
     response = account.handel_response(request, response)
     return response
示例#4
0
def get_login_state(request):
    """
    获取登录态
    """
    account = AccountFactory.getAccountObj()
    # 重定向到首页
    response = HttpResponseRedirect(SITE_URL)
    # 处理登录的cookie
    response = account.handel_response(request, response)
    return response
示例#5
0
def http_referer(request):
    """
    获取 HTTP_REFERER 头
    """
    if 'HTTP_REFERER' in request.META:
        http_referer = urlparse.urlparse(request.META['HTTP_REFERER'])[2]
    else:
        from account.factories import AccountFactory
        account = AccountFactory.getAccountObj()
        http_referer = account._config.LOGIN_REDIRECT_URL
    return http_referer
示例#6
0
    def process_view(self, request, view, args, kwargs):
        """
        校验登录, 如果未登录由跳转登录页
        """
        # 判断豁免权
        if getattr(view, 'login_exempt', False):
            return None

        # 判断用户登录状态是否OK
        account = AccountFactory.getAccountObj()
        loginStatus = account.check_user_login_status(request)
        if loginStatus == 0:
            return None

        # 判断视图是不是自定义了login_url和redirect_field_name
        loginUrl = getattr(view, 'login_url', account.getConfig().LOGIN_URL)
        redirectFieldName = getattr(view, 'redirect_field_name',
                                    REDIRECT_FIELD_NAME)

        # 对于登录态不OK的用户, 引导重新登录 (首页的直接跳登录页, 非首页的跳登录态错误页)
        return account.redirectReLogin(request, loginUrl, redirectFieldName)
示例#7
0
def login_success(request):
    """
    登录成功页面
    """
    account = AccountFactory.getAccountObj()
    return account.login_success(request)
示例#8
0
def login_page(request):
    """
    平台统一登录页面
    """
    account = AccountFactory.getAccountObj()
    return account.login_page(request)
示例#9
0
def check_failed(request):
    """
    权限验证错误页面
    """
    account = AccountFactory.getAccountObj()
    return account.check_failed(request)
示例#10
0
def logout(request):
    account = AccountFactory.getAccountObj()
    return account.logout(request)