8个版本

0.1.8 2023年1月1日
0.1.7 2023年1月1日
0.1.2 2022年12月30日

#430 in 身份验证

每月22次下载

MIT/Apache

88KB
2K SLoC

RBAC模块

DDL

操作员

CREATE TABLE t_rbac_operator (
    id VARCHAR(32) PRIMARY KEY,
    profile_id VARCHAR(32) NULL,
    name VARCHAR(60) NOT NULL ,
    name_type VARCHAR(20) NOT NULL COMMENT 'NameType: LoginName, Email, Mobile',
    password VARCHAR(100) NOT NULL,
    status VARCHAR(20) NOT NULL COMMENT 'Status: Active|Inactive',
    last_login_at TIMESTAMP,
    failed_times INT(4) NOT NULL,
    owner VARCHAR(50) NOT NULL,
    creator VARCHAR(32) NOT NULL,
    updater VARCHAR(32) NOT NULL,
    create_at TIMESTAMP NOT NULL,
    update_at TIMESTAMP NOT NULL,
    deleted BOOL
) COMMENT 'operators for rbac module';
-- the default password: passw0rd!
INSERT INTO `t_rbac_operator` VALUES ('0','0','ROOT','LoginName','6d8e53b0ba388cb82e806b6c7539f98aef51babc52cc23e3d85df35ea6251444','Active','2022-12-27 12:04:46',0,'SYS','SYS','SYS','2022-12-27 12:05:13','2022-12-27 12:05:16',0);

角色

CREATE TABLE t_rbac_role (
    id VARCHAR(32) PRIMARY KEY,
    code VARCHAR(50) NOT NULL,
    name VARCHAR(100) NOT NULL ,
    description VARCHAR(200),
    level INT(4) NOT NULL,
    status VARCHAR(20) NOT NULL COMMENT 'Status: Active|Inactive',
    owner VARCHAR(50) NOT NULL,
    creator VARCHAR(32) NOT NULL,
    updater VARCHAR(32) NOT NULL,
    create_at TIMESTAMP NOT NULL,
    update_at TIMESTAMP NOT NULL,
    deleted BOOL
) COMMENT 'roles for rbac module';

功能

CREATE TABLE t_rbac_feature (
    id VARCHAR(32) PRIMARY KEY,
    parent_id VARCHAR(32),
    code VARCHAR(50) NOT NULL,
    name VARCHAR(100) NOT NULL ,
    endpoint VARCHAR(255),
    description VARCHAR(200),
    status VARCHAR(20) NOT NULL COMMENT 'Status: Active|Inactive',
    creator VARCHAR(32) NOT NULL,
    updater VARCHAR(32) NOT NULL,
    create_at TIMESTAMP NOT NULL,
    update_at TIMESTAMP NOT NULL,
    deleted BOOL
) COMMENT 'features for rbac module';

操作员的角色

CREATE TABLE t_rbac_role_operator (
    id VARCHAR(32) PRIMARY KEY,
    role_id VARCHAR(32) NOT NULL,
    operator_id VARCHAR(32) NOT NULL,
    owner VARCHAR(50) NOT NULL,
    create_at TIMESTAMP NOT NULL
) COMMENT 'the relation of operator and role for rbac module';

角色的功能

CREATE TABLE t_rbac_role_feature (
    id VARCHAR(32) PRIMARY KEY,
    role_id VARCHAR(32) NOT NULL,
    feature_id VARCHAR(32) NOT NULL,
    owner VARCHAR(50) NOT NULL,
    create_at TIMESTAMP NOT NULL
) COMMENT 'the relation of role and feature for rbac module';

会话

CREATE TABLE t_rbac_session (
    id VARCHAR(32) PRIMARY KEY,
    operator_id VARCHAR(32) NOT NULL,
    data VARCHAR(2048),
    session_type VARCHAR(20) NOT NULL COMMENT 'SessionType: ChangePassword, Normal',
    login_at TIMESTAMP NOT NULL,
    last_hit_at TIMESTAMP NOT NULL,
    expire_at TIMESTAMP NOT NULL,
    owner VARCHAR(50) NOT NULL
) COMMENT 'session for rbac module';

访问

CREATE TABLE t_rbac_access (
    id VARCHAR(32) PRIMARY KEY,
    operator_id VARCHAR(32) NOT NULL,
    session_id VARCHAR(32) NOT NULL,
    feature_code VARCHAR(50) NOT NULL,
    control VARCHAR(20) NOT NULL COMMENT 'Control: Allowed,Forbidden',
    access_at TIMESTAMP NOT NULL,
    owner VARCHAR(50) NOT NULL
) COMMENT 'session for rbac module';

依赖

~21–36MB
~564K SLoC