41 lines
1.5 KiB
SQL
41 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS `role_permissions` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`role` varchar(255) NOT NULL,
|
|
`resource` varchar(255) NOT NULL,
|
|
`action` varchar(255) NOT NULL,
|
|
`fields` text DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `role_resource_action` (`role`,`resource`,`action`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Default Permissions
|
|
|
|
-- Admin: Can do everything
|
|
INSERT INTO `role_permissions` (`role`, `resource`, `action`, `fields`) VALUES
|
|
('Admin', 'asset', 'create', '*'),
|
|
('Admin', 'asset', 'read', '*'),
|
|
('Admin', 'asset', 'update', '*'),
|
|
('Admin', 'asset', 'delete', '*'),
|
|
('Admin', 'user', 'create', '*'),
|
|
('Admin', 'user', 'read', '*'),
|
|
('Admin', 'user', 'update', '*'),
|
|
('Admin', 'user', 'delete', '*');
|
|
|
|
-- Asset Manager: Can manage assets
|
|
INSERT INTO `role_permissions` (`role`, `resource`, `action`, `fields`) VALUES
|
|
('Asset Manager', 'asset', 'create', '*'),
|
|
('Asset Manager', 'asset', 'read', '*'),
|
|
('Asset Manager', 'asset', 'update', '*'),
|
|
('Asset Manager', 'asset', 'delete', '*');
|
|
|
|
-- IT Technician: Can manage assets
|
|
INSERT INTO `role_permissions` (`role`, `resource`, `action`, `fields`) VALUES
|
|
('IT Technician', 'asset', 'create', '*'),
|
|
('IT Technician', 'asset', 'read', '*'),
|
|
('IT Technician', 'asset', 'update', '*'),
|
|
('IT Technician', 'asset', 'delete', '*');
|
|
|
|
-- Employee: Can only read some asset fields
|
|
INSERT INTO `role_permissions` (`role`, `resource`, `action`, `fields`) VALUES
|
|
('Employee', 'asset', 'read', 'name,asset_tag,status,location,manufacturer,model');
|