Merge fix/switch-branch

This commit is contained in:
Thanakorn
2026-09-14 17:19:02 +07:00
3 changed files with 19 additions and 5 deletions
+3 -1
View File
@@ -420,7 +420,9 @@ function do_switch_branch(company_id) {
autoPrepare: true, autoPrepare: true,
checkRequired: 0, checkRequired: 0,
action: 'update', action: 'update',
company_id: company_id, // Sent under its own key: prepare_form_data() always fills company_id with
// the CURRENT company, and only options.data reaches the payload.
data: { target_company_id: company_id },
onSuccess: function(res) { onSuccess: function(res) {
window.location.reload(); window.location.reload();
} }
+10 -2
View File
@@ -31,7 +31,11 @@
$result = $um->inviteUser($email, $role, $app_access); $result = $um->inviteUser($email, $role, $app_access);
// Both new and existing users require explicit acceptance via email // Both new and existing users require explicit acceptance via email
$invite_url = rtrim($server_url, '/') . ($result['new_user'] // Absolute URL: the link is opened from a mail client, where a bare
// /app/... path goes nowhere. Same construction as register.php.
$invite_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')
. '://' . $_SERVER['HTTP_HOST']
. rtrim($server_url, '/') . ($result['new_user']
? '/login/invited_onboarding.php?token=' . $result['token'] ? '/login/invited_onboarding.php?token=' . $result['token']
: '/login/accept_invite.php?token=' . $result['token']); : '/login/accept_invite.php?token=' . $result['token']);
@@ -89,7 +93,11 @@
$map_id = (int)($data['map_id'] ?? 0); $map_id = (int)($data['map_id'] ?? 0);
$result = $um->resendInvite($map_id); $result = $um->resendInvite($map_id);
$invite_url = rtrim($server_url, '/') . ($result['is_new_user'] // Absolute URL: the link is opened from a mail client, where a bare
// /app/... path goes nowhere. Same construction as register.php.
$invite_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')
. '://' . $_SERVER['HTTP_HOST']
. rtrim($server_url, '/') . ($result['is_new_user']
? '/login/invited_onboarding.php?token=' . $result['token'] ? '/login/invited_onboarding.php?token=' . $result['token']
: '/login/accept_invite.php?token=' . $result['token']); : '/login/accept_invite.php?token=' . $result['token']);
+6 -2
View File
@@ -3,7 +3,11 @@
* switch_branch.php — Switch the active company for the current session. * switch_branch.php — Switch the active company for the current session.
* *
* action: 'read' → return list of companies the user belongs to * action: 'read' → return list of companies the user belongs to
* action: 'update' → switch to the requested company_id * action: 'update' → switch to target_company_id
*
* The target is read from target_company_id, not company_id: every request
* carries company_id = the CURRENT company (prepare_form_data in custom.js),
* so reading it made a switch silently re-select the company already active.
*/ */
session_start(); session_start();
require_once '../../../assets/utils/db_auth.php'; require_once '../../../assets/utils/db_auth.php';
@@ -20,7 +24,7 @@ if ($action === 'read') {
} }
if ($action === 'update') { if ($action === 'update') {
$target_company_id = (int)($data['company_id'] ?? 0); $target_company_id = (int)($data['target_company_id'] ?? 0);
if (!$target_company_id) { if (!$target_company_id) {
$answer['message'] = 'Invalid company.'; $answer['message'] = 'Invalid company.';