IDaaS系统 ArkID默认审批系统插件配置流程及具体有什么功能

发布于:2022-12-23 ⋅ 阅读:(438) ⋅ 点赞:(0)

功能介绍

默认审批系统插件是ArkID官方推出的系统插件应用,用于提升审批流程的灵活性,以满足企业更加复杂的业务场景、企业的多样化办公需求。安装后,会在审批管理菜单下面添加默认请求处理页面,用于处理分配给当前审批系统的审批请求。
在这里插入图片描述

创建审批动作

01 打开审批动作页面,点击创建按钮
在这里插入图片描述

02 填入表单参数
在这里插入图片描述

生成审批请求

01 打开账号生命周期,点击创建按钮
在这里插入图片描述
02 配置表单参数,点击创建按钮
由于上个步骤中已经配置了针对创建生命周期配置的审批动作,所以该请求返回403
在这里插入图片描述

查看审批请求

01 打开审批管理->审批请求页面
在这里插入图片描述
02 打开用户头像->审批请求页面
在这里插入图片描述

处理审批请求

01 打开审批管理->默认请求处理页面, 点击通过按钮

在这里插入图片描述
02 打开已审核页签, 确认状态已改变
在这里插入图片描述

03 打开账号生命周期页面, 确认待审核的请求重新执
在这里插入图片描述

实现思路

在approve_requests_page中添加默认请求处理页面

默认请求处理 页面中调用 /approve_requests/{{request_id}}/pass/ 同意审批请求

默认请求处理 页面中调用 /approve_requests/{{request_id}}/deny/ 拒绝审批请求

实现 pass_approve_request 抽象方法 同意审批请求

实现 deny_approve_request 抽象方法 拒绝审批请求

由于此插件只不需要将审批请求发送到第三方所以没有覆盖抽象方法create_approve_request

插件基类见arkid.core.extension.approve_system.ApproveSystemExtension

抽象方法实现

pass_approve_request

deny_approve_request

create_approve_request

代码
extension_root.com_longgui_approve_system_arkid.ApproveSystemArkIDExtension (ApproveSystemExtension)

Source code in
extension_root/com_longgui_approve_system_arkid/init.py

class ApproveSystemArkIDExtension(ApproveSystemExtension):    def load(self):        super().load()        self.register_api(            f'/approve_requests/',            'GET',            self.list_tenant_approve_requests,            response=List[ApproveRequestListItemOut],            tenant_path=True,        )        self.register_approve_system_schema(            ApproveSystemArkIDConfigSchema, 'approve_system_arkid'        )        self.register_front_pages([router_page, waiting_page, approved_page])        self.register_front_routers(router, approve_manage_router)    @operation(List[ApproveRequestListItemOut], roles=[TENANT_ADMIN, PLATFORM_ADMIN])    @paginate(CustomPagination)    def list_tenant_approve_requests(        self, request, tenant_id: str, is_approved: str = ''    ):        package = 'com.longgui.approve.system.arkid'        requests = ApproveRequest.valid_objects.filter(            user__tenant=request.tenant, action__extension__package=package        )        if is_approved == 'true':            requests = requests.exclude(status="wait")        elif is_approved == 'false':            requests = requests.filter(status="wait")        return requests    def create_approve_request(self, event, **kwargs):        pass    def pass_approve_request(self, request, approve_request):        response = restore_approve_request(approve_request)        logger.info(f'Restore approve request with result: {response}')    def deny_approve_request(self, request, approve_request):        pass

create_approve_request(self, event, **kwargs)

抽象方法

Parameters:

Name Type Description Default
event arkid.core.event.Event 创建审批请求事件 required

Source code in
extension_root/com_longgui_approve_system_arkid/init.py

def create_approve_request(self, event, **kwargs): pass

deny_approve_request(self, request, approve_request)

抽象方法

Parameters:

Name Type Description Default
request django.http.HttpRequest HTTP 请求 required
approve_request arkid.core.models.ApproveRequest 需要拒绝的审批请求 required

Source code in
extension_root/com_longgui_approve_system_arkid/init.py

def deny_approve_request(self, request, approve_request):

    pass

load(self)

抽象方法,插件加载的入口方法

Source code in
extension_root/com_longgui_approve_system_arkid/init.py

def load(self):

    super().load()

    self.register_api(

        f'/approve_requests/',

        'GET',

        self.list_tenant_approve_requests,

        response=List[ApproveRequestListItemOut],

        tenant_path=True,

    )

    self.register_approve_system_schema(

        ApproveSystemArkIDConfigSchema, 'approve_system_arkid'

    )

    self.register_front_pages([router_page, waiting_page, approved_page])

    self.register_front_routers(router, approve_manage_router)

pass_approve_request(self, request, approve_request)

抽象方法

Parameters:

Name Type Description Default
request django.http.HttpRequest HTTP 请求 required
approve_request arkid.core.models.ApproveRequest 需要同意的审批请求 required

Source code in
extension_root/com_longgui_approve_system_arkid/init.py

def pass_approve_request(self, request, approve_request):

    response = restore_approve_request(approve_request)

    logger.info(f'Restore approve request with result: {response}')

ArkID方舟一账通

一款插件化、多租户、云原生的开源统一身份认证授权管理解决方案/身份云管理平台,采用AGPL-3.0 开源协议;支持多种标准协议(LDAP, OAuth2, SAML, OpenID),细粒度权限控制,完整的WEB管理功能,钉钉、企业微信集成等。ArkID 既可以作为企业终端客户资产统一管理 CIAM,可作为企业内部雇员、外部伙伴统一身份管理平台 EIAM;助企业构建标准化的用户身份体系。如果希望快速的了解系统的基本使用,可以访问官方IDaaS注册账号后创建自己的租户,即可使用系统的大部分功能。如果希望体验超级管理员,安装配置插件等,推荐使用私有化部署的方式。