Skip to content

Commit

Permalink
MySQL schema: add roles tables
Browse files Browse the repository at this point in the history
  • Loading branch information
Al2Klimov committed Apr 9, 2024
1 parent d6881e0 commit 31919ae
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions schema/mysql.schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,58 @@ CREATE TABLE `icingaweb_user`(
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

CREATE TABLE icingaweb_role (
id int unsigned NOT NULL AUTO_INCREMENT,
parent_id int unsigned DEFAULT NULL,
name varchar(254) NOT NULL,
unrestricted enum('n', 'y') NOT NULL DEFAULT 'n',
ctime bigint unsigned NOT NULL,
mtime bigint unsigned DEFAULT NULL,

PRIMARY KEY (id),
CONSTRAINT fk_icingaweb_role_parent_id FOREIGN KEY (parent_id)
REFERENCES icingaweb_role (id) ON DELETE SET NULL,
CONSTRAINT idx_icingaweb_role_name UNIQUE (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE icingaweb_role_user (
role_id int unsigned NOT NULL,
user_name varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL,

PRIMARY KEY (user_name, role_id),
CONSTRAINT fk_icingaweb_role_user_role_id FOREIGN KEY (role_id)
REFERENCES icingaweb_role (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE icingaweb_role_group (
role_id int unsigned NOT NULL,
group_name varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL,

PRIMARY KEY (group_name, role_id),
CONSTRAINT fk_icingaweb_role_group_role_id FOREIGN KEY (role_id)
REFERENCES icingaweb_role (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE icingaweb_role_permission (
role_id int unsigned NOT NULL,
permission varchar(254) NOT NULL,
allowed enum('n', 'y') NOT NULL DEFAULT 'n',

PRIMARY KEY (role_id, permission),
CONSTRAINT fk_icingaweb_role_permission_role_id FOREIGN KEY (role_id)
REFERENCES icingaweb_role (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE icingaweb_role_restriction (
role_id int unsigned NOT NULL,
restriction varchar(254) NOT NULL,
filter text NOT NULL,

PRIMARY KEY (role_id, restriction),
CONSTRAINT fk_icingaweb_role_restriction_role_id FOREIGN KEY (role_id)
REFERENCES icingaweb_role (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE `icingaweb_user_preference`(
`username` varchar(254) COLLATE utf8mb4_unicode_ci NOT NULL,
`section` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
Expand Down

0 comments on commit 31919ae

Please sign in to comment.