Enhance event access control and integrate new permission checks

This commit introduces the `fxEveAccesCanManageBibV4` and `fxEveAccesCanQrTest` functions to improve event access management. It updates various files to utilize these new permission checks, ensuring that only authorized users can manage event registrations and access QR testing features. Additionally, redundant session checks are removed, and redirection logic is refined for better user experience across the application.
This commit is contained in:
2026-06-19 12:49:19 -04:00
parent d5fdb227dd
commit e9ad3d8a92
7 changed files with 188 additions and 22 deletions

View File

@ -0,0 +1,82 @@
/*
MSIN - Acces evenement v2 - Bib v4 + QR test debug
Executer APRES MSIN-eve-acces-v2-phase1-seed.sql
*/
SET NAMES utf8mb4;
INSERT INTO `inscriptions_eve_permissions`
(`perm_key`, `perm_group`, `perm_label_fr`, `perm_label_en`, `perm_description_fr`, `perm_description_en`, `perm_phase`, `perm_actif`, `perm_tri`)
VALUES
('tools.qr_test', 'tools', 'Outil test QR', 'QR test tool',
'Page debug scanner QR (qr_test.php)', NULL, 2, 1, 810)
ON DUPLICATE KEY UPDATE
`perm_group` = VALUES(`perm_group`),
`perm_label_fr` = VALUES(`perm_label_fr`),
`perm_label_en` = VALUES(`perm_label_en`),
`perm_description_fr` = VALUES(`perm_description_fr`),
`perm_description_en` = VALUES(`perm_description_en`),
`perm_phase` = VALUES(`perm_phase`),
`perm_actif` = VALUES(`perm_actif`),
`perm_tri` = VALUES(`perm_tri`);
INSERT INTO `inscriptions_eve_roles`
(`role_code`, `role_label_fr`, `role_label_en`, `role_description_fr`, `role_description_en`, `role_icone`, `role_systeme`, `role_actif`, `role_tri`)
VALUES
('bib_ops', 'Gestion dossards', 'Bib management',
'Quantites epreuves et gestion dossards v4',
'Race quantities and bib management v4',
'fa-hashtag', 1, 1, 35),
('qr_debug', 'Debug QR', 'QR debug',
'Outil interne test scanner QR',
'Internal QR scanner test tool',
'fa-qrcode', 1, 1, 36)
ON DUPLICATE KEY UPDATE
`role_label_fr` = VALUES(`role_label_fr`),
`role_label_en` = VALUES(`role_label_en`),
`role_description_fr` = VALUES(`role_description_fr`),
`role_description_en` = VALUES(`role_description_en`),
`role_icone` = VALUES(`role_icone`),
`role_systeme` = VALUES(`role_systeme`),
`role_actif` = VALUES(`role_actif`),
`role_tri` = VALUES(`role_tri`);
DELETE erp FROM inscriptions_eve_role_permissions erp
INNER JOIN inscriptions_eve_roles r ON r.role_id = erp.role_id
WHERE r.role_code = 'owner';
INSERT INTO inscriptions_eve_role_permissions (role_id, perm_key)
SELECT r.role_id, p.perm_key
FROM inscriptions_eve_roles r
CROSS JOIN inscriptions_eve_permissions p
WHERE r.role_code = 'owner'
AND p.perm_actif = 1;
DELETE erp FROM inscriptions_eve_role_permissions erp
INNER JOIN inscriptions_eve_roles r ON r.role_id = erp.role_id
WHERE r.role_code = 'bib_ops';
INSERT INTO inscriptions_eve_role_permissions (role_id, perm_key)
SELECT r.role_id, p.perm_key
FROM inscriptions_eve_roles r
INNER JOIN inscriptions_eve_permissions p
ON p.perm_key IN ('dossards.view', 'dossards.manage', 'epreuves.view', 'epreuves.edit_qte')
AND p.perm_actif = 1
WHERE r.role_code = 'bib_ops';
DELETE erp FROM inscriptions_eve_role_permissions erp
INNER JOIN inscriptions_eve_roles r ON r.role_id = erp.role_id
WHERE r.role_code = 'qr_debug';
INSERT INTO inscriptions_eve_role_permissions (role_id, perm_key)
SELECT r.role_id, p.perm_key
FROM inscriptions_eve_roles r
INNER JOIN inscriptions_eve_permissions p
ON p.perm_key IN ('tools.qr_test')
AND p.perm_actif = 1
WHERE r.role_code = 'qr_debug';