40 lines
1.2 KiB
SQL
40 lines
1.2 KiB
SQL
-- AtlasOS - Calypso
|
|
-- Add Backup Permissions
|
|
-- Version: 10.0
|
|
|
|
-- Insert backup permissions
|
|
INSERT INTO permissions (name, resource, action, description) VALUES
|
|
('backup:read', 'backup', 'read', 'View backup jobs and history'),
|
|
('backup:write', 'backup', 'write', 'Create and manage backup jobs'),
|
|
('backup:manage', 'backup', 'manage', 'Full backup management')
|
|
ON CONFLICT (name) DO NOTHING;
|
|
|
|
-- Assign backup permissions to roles
|
|
|
|
-- Admin gets all backup permissions (explicitly assign since admin query in 001 only runs once)
|
|
INSERT INTO role_permissions (role_id, permission_id)
|
|
SELECT r.id, p.id
|
|
FROM roles r, permissions p
|
|
WHERE r.name = 'admin'
|
|
AND p.resource = 'backup'
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- Operator gets read and write permissions for backup
|
|
INSERT INTO role_permissions (role_id, permission_id)
|
|
SELECT r.id, p.id
|
|
FROM roles r, permissions p
|
|
WHERE r.name = 'operator'
|
|
AND p.resource = 'backup'
|
|
AND p.action IN ('read', 'write')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- ReadOnly gets only read permission for backup
|
|
INSERT INTO role_permissions (role_id, permission_id)
|
|
SELECT r.id, p.id
|
|
FROM roles r, permissions p
|
|
WHERE r.name = 'readonly'
|
|
AND p.resource = 'backup'
|
|
AND p.action = 'read'
|
|
ON CONFLICT DO NOTHING;
|
|
|