From 7547b67805d5b268e1979ae93168aeec9e9ca7da Mon Sep 17 00:00:00 2001 From: pycook Date: Mon, 21 Aug 2023 11:54:33 +0800 Subject: [PATCH] fix g.user --- cmdb-api/api/lib/perm/acl/audit.py | 5 ++--- cmdb-api/api/views/acl/resources.py | 3 +-- cmdb-api/api/views/acl/user.py | 3 +-- cmdb-api/tests/sample.py | 20 +++++++++----------- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/cmdb-api/api/lib/perm/acl/audit.py b/cmdb-api/api/lib/perm/acl/audit.py index 921d619..fec4408 100644 --- a/cmdb-api/api/lib/perm/acl/audit.py +++ b/cmdb-api/api/lib/perm/acl/audit.py @@ -4,7 +4,7 @@ import json from enum import Enum from typing import List -from flask import g, has_request_context, request +from flask import has_request_context, request from flask_login import current_user from sqlalchemy import func @@ -50,8 +50,7 @@ class AuditCRUD(object): @staticmethod def get_current_operate_uid(uid=None): - user_id = uid or (hasattr(g, 'user') and getattr(current_user, 'uid', None)) \ - or getattr(current_user, 'user_id', None) + user_id = uid or (getattr(current_user, 'uid', None)) or getattr(current_user, 'user_id', None) if has_request_context() and request.headers.get('X-User-Id'): _user_id = request.headers['X-User-Id'] diff --git a/cmdb-api/api/views/acl/resources.py b/cmdb-api/api/views/acl/resources.py index df080b8..4a15a0b 100644 --- a/cmdb-api/api/views/acl/resources.py +++ b/cmdb-api/api/views/acl/resources.py @@ -1,6 +1,5 @@ # -*- coding:utf-8 -*- -from flask import g from flask import request from flask_login import current_user @@ -104,7 +103,7 @@ class ResourceView(APIView): type_id = request.values.get('type_id') app_id = request.values.get('app_id') uid = request.values.get('uid') - if not uid and hasattr(g, "user") and hasattr(current_user, "uid"): + if not uid and hasattr(current_user, "uid"): uid = current_user.uid resource = ResourceCRUD.add(name, type_id, app_id, uid) diff --git a/cmdb-api/api/views/acl/user.py b/cmdb-api/api/views/acl/user.py index d5e0d86..fcf8a6a 100644 --- a/cmdb-api/api/views/acl/user.py +++ b/cmdb-api/api/views/acl/user.py @@ -4,7 +4,6 @@ import requests from flask import abort from flask import current_app -from flask import g from flask import request from flask import session from flask_login import current_user @@ -161,7 +160,7 @@ class UserResetPasswordView(APIView): if app.name not in ('cas-server', 'acl'): return abort(403, ErrFormat.invalid_request) - elif hasattr(g, 'user'): + elif hasattr(current_user, 'username'): if current_user.username != request.values['username']: return abort(403, ErrFormat.invalid_request) diff --git a/cmdb-api/tests/sample.py b/cmdb-api/tests/sample.py index 5961ed1..557ccd7 100644 --- a/cmdb-api/tests/sample.py +++ b/cmdb-api/tests/sample.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- """provide some sample data in database""" -import uuid import random +import uuid - +from api.lib.cmdb.ci import CIManager, CIRelationManager +from api.lib.cmdb.ci_type import CITypeAttributeManager +from api.models.acl import User from api.models.cmdb import ( Attribute, CIType, @@ -12,16 +14,12 @@ from api.models.cmdb import ( CITypeRelation, RelationType ) -from api.models.acl import User - -from api.lib.cmdb.ci_type import CITypeAttributeManager -from api.lib.cmdb.ci import CIManager, CIRelationManager def force_add_user(): - from flask import g - if not getattr(g, "user", None): - g.user = User.query.first() + from flask_login import current_user, login_user + if not getattr(current_user, "username", None): + login_user(User.query.first()) def init_attributes(num=1): @@ -78,12 +76,12 @@ def init_relation_type(num=1): def init_ci_type_relation(num=1): result = [] - ci_types = init_ci_types(num+1) + ci_types = init_ci_types(num + 1) relation_types = init_relation_type(num) for i in range(num): result.append(CITypeRelation.create( parent_id=ci_types[i].id, - child_id=ci_types[i+1].id, + child_id=ci_types[i + 1].id, relation_type_id=relation_types[i].id )) return result