ArkID开源IDaaS系统插件之账号默认生命周期插件 Com longgui account life arkid

默认账号生命周期插件功能介绍

设置用户过期时间后,定时任务会定期将用户过期时间和当前时间作比较,如果当前时间大于用户过期时间,则禁用该用户

配置生命周期定时任务

01打开账号生命周期页面
点击编辑生命周期定时任务按钮
在这里插入图片描述
02配置定时任务表单参数
其中定时运行时间语法参考linux Crontab命令语法,以下图为例:每天8点运行一次,如果失败再每隔间隔30秒重试2次
在这里插入图片描述

配置用户过期时间

01 点击创建按钮
在这里插入图片描述
02点击Config
在这里插入图片描述

03配置用户和过期时间
在这里插入图片描述
04配置完成后,点击创建按钮
在这里插入图片描述

实现思路

定时任务将用户的过期时间和当前时间作比较,如果用户已经过期,则设置用户属性is_active为False,将禁止该用户登录ArkID

需要覆盖插件基类的抽象方法,插件基类见arkid.core.extension.account_life.AccountLifeExtension

抽象方法实现:

  • periodic_task

代码

extension_root.com_longgui_account_life_arkid.AccountLifeArkIDExtension
(AccountLifeExtension)

Source code in extension_root/com_longgui_account_life_arkid/init.py

class AccountLifeArkIDExtension(AccountLifeExtension):
    def load(self):
        super().load()
        self.register_front_pages(select_user_page)
        self.register_account_life_schema(UserExpirationListSchema, "user_expiration")

    def create_tenant_config(self, tenant, config, name, type):
        """
        创建生命周期配置,手工解决expiration_time类型为datetime不能json序列化的问题
        """
        config_created = TenantExtensionConfig()
        config_created.tenant = tenant
        config_created.extension = Extension.active_objects.get(package=self.package)
        config_created.config = json
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值