Ejemplo n.º 1
0
    def wrapper(self, *args, **kwargs):
        headers = self.request.headers
        access_token = kwargs[
            'access_token'] if "access_token" in kwargs else headers.get(
                'Authorization', None)
        id = kwargs['id'] if "id" in kwargs else headers.get('id', None)

        if not id or not access_token:
            logger.info(
                "%s: id_token_login ERROR_LOGIC!!! not id:%s or not access_token:%s"
                % (func, id, access_token))
            self.set_status(error_code.ERROR_LOGIC, 'Parameter Error')
            return {"result": error_code.ERROR_LOGIC}

        validate = TokenMgr().check_expire_access_token(access_token, id)
        if not validate:
            logger.info(
                "%s: id_token_login ERROR_LOGIC!!! access_token not valid, id:%s access_token:%s"
                % (func, id, access_token))
            self.set_status(401, "Unauthorized(access token invalid)")
            return {"result": error_code.ERROR_LOGIC}

        from mmm_da.lib.account.control import AccountMgr
        account = AccountMgr().get_data_by_id(str(id))
        if not account:
            logger.info(
                "%s: id_token_login ERROR_LOGIC!!! not account, id:%s" %
                (func, id))
            self.set_status(error_code.ERROR_LOGIC, 'Parameter Error')
            return {"result": error_code.ERROR_LOGIC}

        valid_result = __is_account_valid(account)
        if valid_result != error_code.ERROR_SUCCESS:
            logger.info("%s: is_account_valid %s!!! id:%s" %
                        (func, valid_result, id))
            self.set_status(valid_result, 'Parameter Error')
            return {"result": valid_result}

        kwargs['account'] = account

        # 只要有访问服务器产生账号,就算登陆
        account.attr_login_time = time.time()
        return func(self, *args, **kwargs)
Ejemplo n.º 2
0
        def id_passwd_login_params_wrapper(self, id, passwd, *args, **kwargs):
            if not id or not passwd:
                logger.info(
                    "%s: id_passwd_login ERROR_LOGIC!!! not enough params" %
                    func)
                self.set_status(error_code.ERROR_LOGIC, 'Parameter Error')
                return {"result": error_code.ERROR_LOGIC}

            if required_admin:
                if int(id) != int(SYSTEM_ACCOUNT_ID):
                    logger.info(
                        "%s: id_passwd_login ERROR_LOGIC!!! request system account"
                        % func)
                    self.set_status(error_code.ERROR_LOGIC, 'Parameter Error')
                    return {"result": error_code.ERROR_LOGIC}

            account = AccountMgr().get_data_by_id(id)
            if not account or account.passwd != passwd:
                logger.info(
                    "%s:id_passwd_login ERROR_LOGIC, login error, id:%s, passwd:%s"
                    % (func, id, passwd))
                self.set_status(error_code.ERROR_LOGIC, 'Parameter Error')
                return {"result": error_code.ERROR_LOGIC}

            valid_result = __is_account_valid(account)
            if valid_result != error_code.ERROR_SUCCESS:
                logger.info("%s: is_account_valid %s!!! id:%s" %
                            (func, valid_result, id))
                self.set_status(valid_result, 'Parameter Error')
                return {"result": valid_result}

            kwargs['account'] = account

            # 只要有访问服务器产生账号,就算登陆
            account.attr_login_time = time.time()
            return func(self, *args, **kwargs)