Передавать email пользователя F7cloud в API поддержки.

Email из Nextcloud (getEMailAddress) уходит в data-user-email, заголовок
X-F7cloud-Email и поле client_email при создании тикета — для привязки
контакта CRM в Bitrix24.
This commit is contained in:
root
2026-05-22 09:58:34 +00:00
parent 1b718f398e
commit 1685488c50
3 changed files with 20 additions and 3 deletions
+12 -3
View File
@@ -3,6 +3,7 @@
if (!root) return; if (!root) return;
const username = root.dataset.username; const username = root.dataset.username;
const userEmail = (root.dataset.userEmail || "").trim();
const serverAddress = root.dataset.serverAddress; const serverAddress = root.dataset.serverAddress;
const apiBase = root.dataset.supportApiBase; const apiBase = root.dataset.supportApiBase;
const supportWsBaseOverride = (root.dataset.supportWsBase || "").trim(); const supportWsBaseOverride = (root.dataset.supportWsBase || "").trim();
@@ -281,10 +282,14 @@
}; };
function clientIdentityHeaders() { function clientIdentityHeaders() {
return { const headers = {
"X-F7cloud-User": username, "X-F7cloud-User": username,
"X-F7cloud-Server": serverAddress, "X-F7cloud-Server": serverAddress,
}; };
if (userEmail) {
headers["X-F7cloud-Email"] = userEmail;
}
return headers;
} }
function revokeAttachmentUrls() { function revokeAttachmentUrls() {
@@ -1471,12 +1476,16 @@
showError("Тема и обращение обязательны"); showError("Тема и обращение обязательны");
return; return;
} }
const result = await submitTicketWithRetry({ const createPayload = {
server_address: serverAddress, server_address: serverAddress,
username, username,
subject, subject,
body: TICKET_CREATE_BODY_PLACEHOLDER, body: TICKET_CREATE_BODY_PLACEHOLDER,
}); };
if (userEmail) {
createPayload.client_email = userEmail;
}
const result = await submitTicketWithRetry(createPayload);
const ticketNo = result.ticket_number; const ticketNo = result.ticket_number;
let createdMsg; let createdMsg;
try { try {
+7
View File
@@ -72,8 +72,15 @@ class PageController extends Controller {
Util::addStyle('f7support', 'f7support'); Util::addStyle('f7support', 'f7support');
Util::addScript('f7support', 'main'); Util::addScript('f7support', 'main');
$userEmail = '';
if ($user !== null) {
$mail = $user->getEMailAddress();
$userEmail = is_string($mail) ? trim($mail) : '';
}
return new TemplateResponse('f7support', 'main', [ return new TemplateResponse('f7support', 'main', [
'username' => $user ? $user->getUID() : '', 'username' => $user ? $user->getUID() : '',
'userEmail' => $userEmail,
'serverAddress' => $serverHost, 'serverAddress' => $serverHost,
'supportApiBase' => $supportApiBase, 'supportApiBase' => $supportApiBase,
'supportApiOrigin' => $supportApiOrigin, 'supportApiOrigin' => $supportApiOrigin,
+1
View File
@@ -2,6 +2,7 @@
<link rel="preconnect" href="<?php p($_['supportApiOrigin']); ?>" crossorigin> <link rel="preconnect" href="<?php p($_['supportApiOrigin']); ?>" crossorigin>
<div id="f7support-app" <div id="f7support-app"
data-username="<?php p($_['username']); ?>" data-username="<?php p($_['username']); ?>"
data-user-email="<?php p($_['userEmail'] ?? ''); ?>"
data-server-address="<?php p($_['serverAddress']); ?>" data-server-address="<?php p($_['serverAddress']); ?>"
data-support-api-base="<?php p($_['supportApiBase']); ?>" data-support-api-base="<?php p($_['supportApiBase']); ?>"
data-support-ws-base="<?php p($_['supportWsBase'] ?? ''); ?>" data-support-ws-base="<?php p($_['supportWsBase'] ?? ''); ?>"