背景
- 我和同事都可以提交上线SQL,但是不能自己提交的SQL自己去审核通过。
- 目前的情况是可以自提自审。
修改代码
- 找到
/opt/archery/sql/utils/workflow_audit.py
文件
...省略...
@staticmethod
def can_review(user, workflow_id, workflow_type):
audit_info = WorkflowAudit.objects.get(
workflow_id=workflow_id, workflow_type=workflow_type
)
group_id = audit_info.group_id
result = False
if audit_info.current_status == WorkflowDict.workflow_status["audit_wait"]:
try:
auth_group_id = Audit.detail_by_workflow_id(
workflow_id, workflow_type
).current_audit
audit_auth_group = Group.objects.get(id=auth_group_id).name
except Exception:
raise Exception("当前审批auth_group_id不存在,请检查并清洗历史数据")
if (
auth_group_users([audit_auth_group], group_id)
.filter(id=user.id)
.exists()
or user.is_superuser == 1
):
if workflow_type == 1:
if user.has_perm("sql.query_review"):
result = True
elif workflow_type == 2:
if user.has_perm("sql.sql_review"):
result = True
elif workflow_type == 3:
if user.has_perm("sql.archive_review"):
result = True
if group_id in [1, 2]:
create_user = audit_info.create_user
if create_user == user.username:
result = False
return result
... 省略...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
group_id
是资源组ID
- 我这边使用docker运行,把·workflow_audit.py·文件替换就好。运行以下命令。
docker cp workflow_audit.py archery:/opt/archery/sql/utils/
docker restart archery
效果
- 现在我自己的帐户就没有审批自己提交SQL的权限了,如下图所示。
- 登录别人的账号有审核的权限,如下图所示。
参考