Added db permissions models
This commit is contained in:
@@ -4,7 +4,7 @@ USE auracle;
|
|||||||
|
|
||||||
/* =========== PRIMARY TABLES =========== */
|
/* =========== PRIMARY TABLES =========== */
|
||||||
|
|
||||||
/* PERMISSIONS */
|
-- ROLES
|
||||||
CREATE TABLE IF NOT EXISTS `role` (
|
CREATE TABLE IF NOT EXISTS `role` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(255) NOT NULL,
|
`name` VARCHAR(255) NOT NULL,
|
||||||
@@ -12,7 +12,14 @@ CREATE TABLE IF NOT EXISTS `role` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* USERS */
|
-- PERMISSIONS
|
||||||
|
CREATE TABLE IF NOT EXISTS `permission` (
|
||||||
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`slug` VARCHAR(255) NOT NULL,
|
||||||
|
PRIMARY KEY(`id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- USERS
|
||||||
CREATE TABLE IF NOT EXISTS `user` (
|
CREATE TABLE IF NOT EXISTS `user` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`uuid` VARCHAR(36) NOT NULL,
|
`uuid` VARCHAR(36) NOT NULL,
|
||||||
@@ -30,7 +37,7 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||||||
FOREIGN KEY(`role_id`) REFERENCES role(`id`)
|
FOREIGN KEY(`role_id`) REFERENCES role(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* SPELLS */
|
-- SPELLS
|
||||||
CREATE TABLE IF NOT EXISTS `spell` (
|
CREATE TABLE IF NOT EXISTS `spell` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(255) NOT NULL DEFAULT "Nom du sort",
|
`name` VARCHAR(255) NOT NULL DEFAULT "Nom du sort",
|
||||||
@@ -46,7 +53,7 @@ CREATE TABLE IF NOT EXISTS `spell` (
|
|||||||
FOREIGN KEY(`author_id`) REFERENCES user(`id`)
|
FOREIGN KEY(`author_id`) REFERENCES user(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* META SCHOOLS */
|
-- META SCHOOLS
|
||||||
CREATE TABLE IF NOT EXISTS `meta_school` (
|
CREATE TABLE IF NOT EXISTS `meta_school` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(255) NOT NULL DEFAULT "Nom de l'école mère",
|
`name` VARCHAR(255) NOT NULL DEFAULT "Nom de l'école mère",
|
||||||
@@ -54,7 +61,7 @@ CREATE TABLE IF NOT EXISTS `meta_school` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* SCHOOLS */
|
-- SCHOOLS
|
||||||
CREATE TABLE IF NOT EXISTS `school` (
|
CREATE TABLE IF NOT EXISTS `school` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(255) NOT NULL DEFAULT "Nom de l'école",
|
`name` VARCHAR(255) NOT NULL DEFAULT "Nom de l'école",
|
||||||
@@ -64,7 +71,7 @@ CREATE TABLE IF NOT EXISTS `school` (
|
|||||||
FOREIGN KEY(`meta_school_id`) REFERENCES meta_school(`id`)
|
FOREIGN KEY(`meta_school_id`) REFERENCES meta_school(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* COMMON INGREDIENTS */
|
-- COMMON INGREDIENTS
|
||||||
CREATE TABLE IF NOT EXISTS `ingredient` (
|
CREATE TABLE IF NOT EXISTS `ingredient` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(255) NOT NULL DEFAULT "Langue de salamandre",
|
`name` VARCHAR(255) NOT NULL DEFAULT "Langue de salamandre",
|
||||||
@@ -72,7 +79,7 @@ CREATE TABLE IF NOT EXISTS `ingredient` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* COMMON VARIABLES */
|
-- COMMON VARIABLES
|
||||||
CREATE TABLE IF NOT EXISTS `variable` (
|
CREATE TABLE IF NOT EXISTS `variable` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`description` VARCHAR(255) NOT NULL DEFAULT "Nombre de créatures affectées",
|
`description` VARCHAR(255) NOT NULL DEFAULT "Nombre de créatures affectées",
|
||||||
@@ -81,8 +88,8 @@ CREATE TABLE IF NOT EXISTS `variable` (
|
|||||||
|
|
||||||
/* ==== ASSOCIATION TABLES ==== */
|
/* ==== ASSOCIATION TABLES ==== */
|
||||||
|
|
||||||
/* SPELLS` SCHOOLS */
|
-- SPELLS' SCHOOLS
|
||||||
/* One spell can have multiple (up to 3) schools */
|
-- One spell can have multiple (up to 3) schools
|
||||||
CREATE TABLE IF NOT EXISTS `spell_school` (
|
CREATE TABLE IF NOT EXISTS `spell_school` (
|
||||||
`spell_id` INT UNSIGNED NOT NULL,
|
`spell_id` INT UNSIGNED NOT NULL,
|
||||||
`school_id` INT UNSIGNED NOT NULL,
|
`school_id` INT UNSIGNED NOT NULL,
|
||||||
@@ -91,8 +98,8 @@ CREATE TABLE IF NOT EXISTS `spell_school` (
|
|||||||
FOREIGN KEY(`school_id`) REFERENCES school(`id`)
|
FOREIGN KEY(`school_id`) REFERENCES school(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* SPELLS` VARIABLES */
|
-- SPELLS' VARIABLES
|
||||||
/* One spell can have multiple (up to 2) variables of cost */
|
-- One spell can have multiple (up to 2) variables of cost
|
||||||
CREATE TABLE IF NOT EXISTS `spell_variable` (
|
CREATE TABLE IF NOT EXISTS `spell_variable` (
|
||||||
`spell_id` INT UNSIGNED NOT NULL,
|
`spell_id` INT UNSIGNED NOT NULL,
|
||||||
`variable_id` INT UNSIGNED NOT NULL,
|
`variable_id` INT UNSIGNED NOT NULL,
|
||||||
@@ -101,8 +108,8 @@ CREATE TABLE IF NOT EXISTS `spell_variable` (
|
|||||||
FOREIGN KEY(`variable_id`) REFERENCES variable(`id`)
|
FOREIGN KEY(`variable_id`) REFERENCES variable(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* SPELLS` VARIABLES */
|
-- SPELLS' VARIABLES
|
||||||
/* One spell can have multiple ingredients */
|
-- One spell can have multiple ingredients
|
||||||
CREATE TABLE IF NOT EXISTS `spell_ingredient` (
|
CREATE TABLE IF NOT EXISTS `spell_ingredient` (
|
||||||
`spell_id` INT UNSIGNED NOT NULL,
|
`spell_id` INT UNSIGNED NOT NULL,
|
||||||
`ingredient_id` INT UNSIGNED NOT NULL,
|
`ingredient_id` INT UNSIGNED NOT NULL,
|
||||||
@@ -111,7 +118,17 @@ CREATE TABLE IF NOT EXISTS `spell_ingredient` (
|
|||||||
FOREIGN KEY(`ingredient_id`) REFERENCES ingredient(`id`)
|
FOREIGN KEY(`ingredient_id`) REFERENCES ingredient(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Ajout d`une nouvelle ligne avant l`insert de description */
|
-- ROLES' PERMISSIONS
|
||||||
|
-- One role can have any number of permissions, or none at all
|
||||||
|
CREATE TABLE IF NOT EXISTS `role_permission` (
|
||||||
|
`role_id` INT UNSIGNED NOT NULL,
|
||||||
|
`permission_id` INT UNSIGNED NOT NULL,
|
||||||
|
PRIMARY KEY (`role_id`, `permission_id`),
|
||||||
|
FOREIGN KEY(`role_id`) REFERENCES role(`id`),
|
||||||
|
FOREIGN KEY(`permission_id`) REFERENCES permission(`id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Ajout d`une nouvelle ligne avant l`insert de description
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE TRIGGER `multiLine` BEFORE INSERT ON `spell` FOR EACH ROW
|
CREATE TRIGGER `multiLine` BEFORE INSERT ON `spell` FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -123,13 +140,34 @@ DELIMITER ;
|
|||||||
SET NAMES utf8;
|
SET NAMES utf8;
|
||||||
USE auracle;
|
USE auracle;
|
||||||
|
|
||||||
-- PERMISSIONS
|
-- ROLES
|
||||||
INSERT INTO `role` (name, description) VALUES
|
INSERT INTO `role` (name, description) VALUES
|
||||||
("Visiteur", "Utilisateur normal, peut consulter les sorts."),
|
("Visiteur", "Utilisateur normal, peut consulter les sorts."),
|
||||||
("Scribe", "Gardiens des écrits, les scribes sont capables de modifier et d'ajouter des sortilèges."),
|
("Scribe", "Gardiens des écrits, les scribes sont capables de soumettre des sortilèges."),
|
||||||
("Arcanologue", "Maîtres de l'arcane, ils ont le pouvoir et la responsabilité de juger les sortilèges récents et de les supprimer, ou valider."),
|
("Arcanologue", "Maîtres de l'arcane, ils ont le pouvoir et la responsabilité de juger les sortilèges récents et de les supprimer, ou valider."),
|
||||||
("Augure", "Régents des grimoires, ils ont droit d'accès à l'intégralité des informations connues, et pouvoir absolu sur le savoir arcanique.");
|
("Augure", "Régents des grimoires, ils ont droit d'accès à l'intégralité des informations connues, et pouvoir absolu sur le savoir arcanique.");
|
||||||
|
|
||||||
|
-- PERMISSIONS
|
||||||
|
INSERT INTO `permission` (slug) VALUES
|
||||||
|
("SUBMIT_SPELLS"),
|
||||||
|
("APPROVE_SPELLS"),
|
||||||
|
("MODIFY_SPELLS"),
|
||||||
|
("DELETE_SPELLS"),
|
||||||
|
("WARN_USERS"),
|
||||||
|
("BAN_USERS");
|
||||||
|
|
||||||
|
INSERT INTO `role_permission` (role_id, permission_id) VALUES
|
||||||
|
(2, 1),
|
||||||
|
(3, 1),
|
||||||
|
(3, 2),
|
||||||
|
(3, 3),
|
||||||
|
(4, 1),
|
||||||
|
(4, 2),
|
||||||
|
(4, 3),
|
||||||
|
(4, 4),
|
||||||
|
(4, 5),
|
||||||
|
(4, 6);
|
||||||
|
|
||||||
-- USERS
|
-- USERS
|
||||||
INSERT INTO `user` (uuid, name, mail, avatar, gender, register_date, password, role_id, verified, banned) VALUES
|
INSERT INTO `user` (uuid, name, mail, avatar, gender, register_date, password, role_id, verified, banned) VALUES
|
||||||
("08e5d2cf-3f0b-454f-b03f-504350d6be85", "Izàc", "tymos@ambrose.edu", null, null, "2020-12-27 17:47:02", "$2b$10$8KWGfRmdQ/ya32fROZNrWugXIEOciDaZwLz.3.GzQa5xrJaGF9RP2", 4, 1, 0);
|
("08e5d2cf-3f0b-454f-b03f-504350d6be85", "Izàc", "tymos@ambrose.edu", null, null, "2020-12-27 17:47:02", "$2b$10$8KWGfRmdQ/ya32fROZNrWugXIEOciDaZwLz.3.GzQa5xrJaGF9RP2", 4, 1, 0);
|
||||||
@@ -173,7 +211,7 @@ LOAD DATA INFILE 'C:/temp/auracle_data/variable.csv'
|
|||||||
LINES TERMINATED BY '\n'
|
LINES TERMINATED BY '\n'
|
||||||
IGNORE 1 ROWS;
|
IGNORE 1 ROWS;
|
||||||
|
|
||||||
/* Insertions de masses */
|
-- Insertions de masses
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE PROCEDURE insertIntoSchoolRange(IN delimiter_start INT, IN delimiter_end INT, IN id_school INT)
|
CREATE PROCEDURE insertIntoSchoolRange(IN delimiter_start INT, IN delimiter_end INT, IN id_school INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|||||||
Reference in New Issue
Block a user