默认账号生命周期插件功能介绍
设置用户过期时间后,定时任务会定期将用户过期时间和当前时间作比较,如果当前时间大于用户过期时间,则禁用该用户
配置生命周期定时任务
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<

ArkID系统中的账号默认生命周期插件允许设置用户过期时间,通过定时任务对比用户过期时间和当前时间,一旦用户过期则自动禁用。配置包括定时任务设定和用户过期时间配置,实现思路涉及插件基类的抽象方法覆盖,如`periodic_task`。对项目感兴趣者可通过参与开源社区、提交插件或应用、成为代理商等方式参与。
最低0.47元/天 解锁文章
607

被折叠的 条评论
为什么被折叠?



