Files
Siro/backend
Hamza-AyedandClaude Opus 5 a0ab6c5155 Add broadcast notifications and transit route approvals
Broadcast: ride/firebase/send_fcm.php is an internal service guarded by a
shared secret, so the browser cannot call it — holding that key client-side
would expose it, and the endpoint cannot tell who the sender is. A new
Admin/notifications/broadcast.php sits in front of it: it runs behind
connect.php, requires super_admin, restricts the target to the two topics the
apps actually subscribe to ('drivers'/'passengers') so it cannot be used to
push to an arbitrary topic or a single device token, bounds the title and
body, writes an audit entry before dispatching, and only then forwards the
call internally with the shared secret.

The composer shows a live push preview and an explicit confirmation naming
the audience, since a broadcast cannot be recalled.

Route approvals: draft routes render with their stops, distance and stop
count, and approve/reject posts to transit/route/approve.php behind a
confirmation stating the consequence. Available to admins and super admins,
matching the endpoint's own role check.

Also render user-supplied text with unicode-bidi: plaintext — Arabic names,
addresses and messages were being laid out left-to-right inside the
English UI.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 02:15:02 +03:00
..
2026-07-09 03:41:48 +03:00
2026-07-23 16:56:58 +03:00
2026-07-23 16:56:58 +03:00
2026-06-09 08:40:31 +03:00
2026-07-23 21:18:25 +03:00
2026-06-09 08:40:31 +03:00
2026-07-14 19:10:36 +03:00
2026-06-09 08:40:31 +03:00
2026-06-29 00:26:08 +03:00
2026-07-14 00:54:51 +03:00
2026-07-12 05:40:28 +03:00
2026-06-16 17:47:19 +03:00
2026-06-29 00:07:33 +03:00
2026-06-09 08:40:31 +03:00
2026-06-12 20:40:40 +03:00
2026-06-28 00:42:26 +03:00
2026-06-11 13:47:40 +03:00
2026-06-25 01:22:26 +03:00
2026-06-16 01:17:29 +03:00
2026-06-24 16:12:30 +03:00
2026-06-27 05:07:43 +03:00
2026-06-25 01:15:22 +03:00
2026-06-12 20:40:40 +03:00