• archery修改为不能自提自审核上线SQL


    背景

    • 我和同事都可以提交上线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/
    
    • 1
    • 然后重启
    docker restart archery
    
    • 1

    效果

    • 现在我自己的帐户就没有审批自己提交SQL的权限了,如下图所示。
      在这里插入图片描述
    • 登录别人的账号有审核的权限,如下图所示。

    在这里插入图片描述

    参考

  • 相关阅读:
    达梦日志分析工具DMLOG使用
    Python操作Numpy模块库
    python实现批量从excel列表显示图片网址中下载图片
    IMX6ULL —— ASCII 字符和中文字符的点阵显示
    [go学习笔记.第十五章.反射,常量] 2.常量
    生产管理系统--制造订单
    面试--mysql基础
    3.线性代数-矩阵
    Linux环境下gdb调试方法与演示
    vscode工程屏蔽不需要的文件(保持搜索便利)
  • 原文地址:https://blog.csdn.net/baidu_19473529/article/details/134523743