Added user audit details in panel

This commit is contained in:
Pinga 2024-01-05 14:18:40 +02:00
parent 2c48d48777
commit 6d1f934d36
8 changed files with 197 additions and 25 deletions

View file

@ -601,6 +601,20 @@ CREATE TABLE IF NOT EXISTS `registry`.`users` (
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Panel Users';
CREATE TABLE IF NOT EXISTS `registry`.`users_audit` (
`user_id` int(10) unsigned NOT NULL,
`user_event` VARCHAR(255) NOT NULL,
`user_resource` VARCHAR(255) default NULL,
`user_agent` VARCHAR(255) NOT NULL,
`user_ip` VARCHAR(45) NOT NULL,
`user_location` VARCHAR(45) default NULL,
`event_time` DATETIME(3) NOT NULL,
`user_data` JSON default NULL,
KEY `user_id` (`user_id`),
KEY `user_event` (`user_event`),
KEY `user_ip` (`user_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Panel User Audit';
CREATE TABLE IF NOT EXISTS `registry`.`users_confirmations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
@ -616,24 +630,24 @@ CREATE TABLE IF NOT EXISTS `registry`.`users_confirmations` (
CREATE TABLE IF NOT EXISTS `registry`.`users_remembered` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`selector` varchar(24) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
`expires` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `selector` (`selector`),
KEY `user` (`user`)
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Panel Users Remember';
CREATE TABLE IF NOT EXISTS `registry`.`users_resets` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`selector` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,
`expires` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `selector` (`selector`),
KEY `user_expires` (`user`,`expires`)
KEY `user_expires` (`user_id`,`expires`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Panel Users Reset';
CREATE TABLE IF NOT EXISTS `registry`.`users_throttling` (

View file

@ -573,6 +573,20 @@ CREATE TABLE IF NOT EXISTS registry.users (
"backup_codes" TEXT,
);
CREATE TABLE IF NOT EXISTS registry.users_audit (
"user_id" SERIAL PRIMARY KEY CHECK ("id" >= 0),
"user_event" VARCHAR(255) NOT NULL,
"user_resource" VARCHAR(255) DEFAULT NULL,
"user_agent" VARCHAR(255) NOT NULL,
"user_ip" VARCHAR(45) NOT NULL,
"user_location" VARCHAR(45) DEFAULT NULL,
"event_time" TIMESTAMP(3) NOT NULL,
"user_data" JSONB DEFAULT NULL,
CONSTRAINT pk_users_audit PRIMARY KEY (user_id)
);
CREATE INDEX idx_user_event ON registry.users_audit (user_event);
CREATE INDEX idx_user_ip ON registry.users_audit (user_ip);
CREATE TABLE IF NOT EXISTS registry.users_confirmations (
"id" SERIAL PRIMARY KEY CHECK ("id" >= 0),
"user_id" INTEGER NOT NULL CHECK ("user_id" >= 0),
@ -586,21 +600,21 @@ CREATE INDEX IF NOT EXISTS "user_id" ON registry.users_confirmations ("user_id")
CREATE TABLE IF NOT EXISTS registry.users_remembered (
"id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0),
"user" INTEGER NOT NULL CHECK ("user" >= 0),
"user_id" INTEGER NOT NULL CHECK ("user_id" >= 0),
"selector" VARCHAR(24) UNIQUE NOT NULL,
"token" VARCHAR(255) NOT NULL,
"expires" INTEGER NOT NULL CHECK ("expires" >= 0)
);
CREATE INDEX IF NOT EXISTS "user" ON registry.users_remembered ("user");
CREATE INDEX IF NOT EXISTS "user_id" ON registry.users_remembered ("user_id");
CREATE TABLE IF NOT EXISTS registry.users_resets (
"id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0),
"user" INTEGER NOT NULL CHECK ("user" >= 0),
"user_id" INTEGER NOT NULL CHECK ("user_id" >= 0),
"selector" VARCHAR(20) UNIQUE NOT NULL,
"token" VARCHAR(255) NOT NULL,
"expires" INTEGER NOT NULL CHECK ("expires" >= 0)
);
CREATE INDEX IF NOT EXISTS "user_expires" ON registry.users_resets ("user", "expires");
CREATE INDEX IF NOT EXISTS "user_expires" ON registry.users_resets ("user_id", "expires");
CREATE TABLE IF NOT EXISTS registry.users_throttling (
"bucket" VARCHAR(44) PRIMARY KEY,