功能介绍
默认审批系统插件是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注册账号后创建自己的租户,即可使用系统的大部分功能。如果希望体验超级管理员,安装配置插件等,推荐使用私有化部署的方式。