diff --git a/cmdb-api/api/lib/common_setting/employee.py b/cmdb-api/api/lib/common_setting/employee.py index cb75d4c..671170f 100644 --- a/cmdb-api/api/lib/common_setting/employee.py +++ b/cmdb-api/api/lib/common_setting/employee.py @@ -726,6 +726,7 @@ class CreateEmployee(object): try: existed = self.check_acl_user(user_data) if not existed: + user_data['add_from'] = 'common' return self.acl.create_user(user_data) return existed except Exception as e: diff --git a/cmdb-api/api/lib/perm/acl/user.py b/cmdb-api/api/lib/perm/acl/user.py index d6f2fdd..1d56b74 100644 --- a/cmdb-api/api/lib/perm/acl/user.py +++ b/cmdb-api/api/lib/perm/acl/user.py @@ -41,6 +41,7 @@ class UserCRUD(object): @classmethod def add(cls, **kwargs): + add_from = kwargs.pop('add_from', None) existed = User.get_by(username=kwargs['username']) existed and abort(400, ErrFormat.user_exists.format(kwargs['username'])) @@ -62,10 +63,11 @@ class UserCRUD(object): AuditCRUD.add_role_log(None, AuditOperateType.create, AuditScope.user, user.uid, {}, user.to_dict(), {}, {} ) - from api.lib.common_setting.employee import EmployeeCRUD - payload = {column: getattr(user, column) for column in ['uid', 'username', 'nickname', 'email', 'block']} - payload['rid'] = role.id - EmployeeCRUD.add_employee_from_acl_created(**payload) + if add_from != 'common': + from api.lib.common_setting.employee import EmployeeCRUD + payload = {column: getattr(user, column) for column in ['uid', 'username', 'nickname', 'email', 'block']} + payload['rid'] = role.id + EmployeeCRUD.add_employee_from_acl_created(**payload) return user