1'); echo "OK: UPDATE template dept_id\n"; if (indexExists('sa_system_role', 'uk_slug')) { Db::execute('ALTER TABLE `sa_system_role` DROP INDEX `uk_slug`'); echo "OK: DROP INDEX uk_slug\n"; } else { echo "SKIP: uk_slug not found\n"; } if (!indexExists('sa_system_role', 'uk_dept_code')) { Db::execute('ALTER TABLE `sa_system_role` ADD UNIQUE KEY `uk_dept_code` (`dept_id`, `code`)'); echo "OK: ADD UNIQUE uk_dept_code\n"; } else { echo "SKIP: uk_dept_code exists\n"; } $service = new SystemRoleChannelService(); $sync = $service->syncAllChannelsFromDefault(); echo "Synced roles for channels: " . json_encode($sync, JSON_UNESCAPED_UNICODE) . "\n"; $mapped = $service->remapUserRolesToChannelRoles(); echo "Remapped user roles: {$mapped}\n"; echo "Done.\n";