Sindbad~EG File Manager
-- Admin Location Assignments Table
-- Allows multiple admins to be assigned to multiple areas/districts/assemblies
CREATE TABLE IF NOT EXISTS admin_location_assignments (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
location_type ENUM('area', 'district', 'assembly') NOT NULL,
area_id INT NULL,
district_id INT NULL,
assembly_id INT NULL,
assigned_by INT NULL,
assigned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
is_active BOOLEAN DEFAULT TRUE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (area_id) REFERENCES areas(id) ON DELETE CASCADE,
FOREIGN KEY (district_id) REFERENCES districts(id) ON DELETE CASCADE,
FOREIGN KEY (assembly_id) REFERENCES assemblies(id) ON DELETE CASCADE,
FOREIGN KEY (assigned_by) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_user_id (user_id),
INDEX idx_location_type (location_type),
INDEX idx_area_id (area_id),
INDEX idx_district_id (district_id),
INDEX idx_assembly_id (assembly_id),
INDEX idx_is_active (is_active),
UNIQUE KEY unique_assignment (user_id, location_type, area_id, district_id, assembly_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Register Administration Module (display_order = 0 to appear before Membership which is 1)
INSERT IGNORE INTO module_management (module_name, module_url, module_icon, required_role, display_order, is_active, created_at)
VALUES ('Administration', 'modules/administration/index.php', 'cogs', 'superuser', 0, 1, NOW());
-- Update Administration display_order if it already exists
UPDATE module_management SET display_order = 0 WHERE module_name = 'Administration';
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists