88 lines
2.5 KiB
MySQL
88 lines
2.5 KiB
MySQL
|
CREATE OR REPLACE TABLE `vn`.`entryDms` (
|
||
|
`entryFk` int(11) NOT NULL,
|
||
|
`dmsFk` int(11) NOT NULL,
|
||
|
`editorFk` int(10) unsigned DEFAULT NULL,
|
||
|
PRIMARY KEY (`entryFk`,`dmsFk`),
|
||
|
KEY `gestdoc_id` (`dmsFk`),
|
||
|
KEY `entryDms_editor` (`editorFk`),
|
||
|
CONSTRAINT `entryDms_dms` FOREIGN KEY (`dmsFk`) REFERENCES `dms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||
|
CONSTRAINT `entryDms_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`),
|
||
|
CONSTRAINT `entryDms_entry` FOREIGN KEY (`entryFk`) REFERENCES `entry` (`id`) ON UPDATE CASCADE
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||
|
|
||
|
-- DROP TRIGGER IF EXISTS `vn`.`entryDms_beforeInsert`;
|
||
|
-- USE `vn`;
|
||
|
|
||
|
-- DELIMITER $$
|
||
|
-- $$
|
||
|
-- CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`entryDms_beforeInsert`
|
||
|
-- BEFORE INSERT ON `entryDms`
|
||
|
-- FOR EACH ROW
|
||
|
-- BEGIN
|
||
|
-- SET NEW.editorFk = account.myUser_getId();
|
||
|
-- END $$
|
||
|
-- DELIMITER ;
|
||
|
|
||
|
-- DROP TRIGGER IF EXISTS `vn`.`entryDms_beforeUpdate`;
|
||
|
-- USE `vn`;
|
||
|
|
||
|
-- DELIMITER $$
|
||
|
-- $$
|
||
|
-- CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`entryDms_beforeUpdate`
|
||
|
-- BEFORE UPDATE ON `entryDms`
|
||
|
-- FOR EACH ROW
|
||
|
-- BEGIN
|
||
|
-- SET NEW.editorFk = account.myUser_getId();
|
||
|
-- END $$
|
||
|
-- DELIMITER ;
|
||
|
|
||
|
-- DROP TRIGGER IF EXISTS `vn`.`entryDms_beforeDelete`;
|
||
|
-- USE `vn`;
|
||
|
|
||
|
-- DELIMITER $$
|
||
|
-- $$
|
||
|
-- CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`entryDms_beforeDelete`
|
||
|
-- BEFORE DELETE ON `entryDms`
|
||
|
-- FOR EACH ROW
|
||
|
-- BEGIN
|
||
|
-- UPDATE dms
|
||
|
-- SET dmsTypeFk = (SELECT id
|
||
|
-- FROM dmsType
|
||
|
-- WHERE `code` = 'trash'
|
||
|
-- )
|
||
|
-- WHERE id = OLD.dmsFk AND ( SELECT IF(COUNT(*) > 0, FALSE, TRUE)
|
||
|
-- FROM entryDms
|
||
|
-- WHERE dmsFk = OLD.dmsFk
|
||
|
-- ) ;
|
||
|
-- END $$
|
||
|
-- DELIMITER ;
|
||
|
|
||
|
-- DROP TRIGGER IF EXISTS `vn`.`entryDms_afterDelete`;
|
||
|
-- USE `vn`;
|
||
|
|
||
|
-- DELIMITER $$
|
||
|
-- $$
|
||
|
-- CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`entryDms_afterDelete`
|
||
|
-- AFTER DELETE ON `entryDms`
|
||
|
-- FOR EACH ROW
|
||
|
-- BEGIN
|
||
|
-- INSERT INTO entryLog
|
||
|
-- SET `action` = 'delete',
|
||
|
-- `changedModel` = 'entryDms',
|
||
|
-- `changedModelId` = OLD.entryFk,
|
||
|
-- `userFk` = account.myUser_getId();
|
||
|
-- END $$
|
||
|
-- DELIMITER ;
|
||
|
|
||
|
|
||
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
||
|
VALUES
|
||
|
('WorkerDms', '*', '*', 'ALLOW', 'ROLE', 'employee'),
|
||
|
('EntryDms', '*', '*', 'ALLOW', 'ROLE', 'employee'),
|
||
|
('Entry', 'uploadFile', 'WRITE', 'ALLOW', 'ROLE', 'employee');
|
||
|
|
||
|
-- UPDATE `salix`.`ACL`
|
||
|
-- SET accessType = '*'
|
||
|
-- WHERE model = 'ClientDms'
|
||
|
-- AND property = '*';
|