Repository navigation
feat(freshdesk): osobne widgety wsparcia dla zalogowanych i anonimów + JWT - #868
Merged
Merged
Conversation
…+ JWT
- zalogowani: widget DJANGO_BPP_FRESHDESK_WIDGET_ID; gdy ustawiony
DJANGO_BPP_FRESHDESK_WIDGET_JWT_SECRET, uwierzytelnienie
FreshworksWidget('authenticate') tokenem z /freshdesk/widget-token/
(HS256, exp 1h, odnawiany callbackiem widgetu)
- anonimowi: osobny widget DJANGO_BPP_FRESHDESK_WIDGET_ID_ANON (captcha
po stronie Freshdesku); pusty ID = brak przycisku
- jeden wspólny szablon + bpp/js/freshdesk-widget.js dla frontendu
i admina (leniwe ładowanie także na frontendzie)
- dokumentacja zmiennych: docs/administrator/widget-wsparcia-freshdesk.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rb8Fst46CA2yvPhao1AriX
…b.js) Po rebase na #856 (zakładka „Pomoc") logika JWT trafia do wspólnego support-tab.js zamiast osobnego freshdesk-widget.js: - przy data-token-url: "authenticate" z tokenem z serwera i callbackiem odnawiającym; "open" czeka, aż uwierzytelnienie trafi do kolejki, - bez JWT: "identify" jak dotąd; anonim (brak data-user-*): bez identify, - testy Playwright: JWT w adminie (kolejność hide → prefill → authenticate → open, poprawny token) i osobny widget anonima na stronie publicznej. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rb8Fst46CA2yvPhao1AriX
mpasternak
force-pushed
the
feat/freshdesk-widget-jwt
branch
from
October 20, 2026 12:58
3f8e914 to
dd87ed9
Compare
…mail w opisie widgetu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…upport.iplweb.pl Skrypt Freshworks ładuje się dopiero po otrzymaniu tokenu; brak tokenu (konto bez e-maila, błąd sieci) = stan błędu zakładki zamiast cichego identify z niepodpisanymi danymi. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gdy tokenu nie da się uzyskać (konto bez e-maila, błąd sieci), a ustawiono DJANGO_BPP_FRESHDESK_WIDGET_ID_ANON, ładuje się widget anonimowy (z captchą) zamiast odsyłania do support.iplweb.pl. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mpasternak
added a commit
to iplweb/bpp-deploy
that referenced
this pull request
Oct 21, 2026
Jeden rejestr (scripts/config-registry.tsv) zmiennych .env, o ktorych decyduje tylko operator: e-mail admina, SSL, Slack, Rollbar, Google, backupy, widgety Freshdesk (iplweb/bpp#868: WIDGET_ID, WIDGET_ID_ANON, WIDGET_JWT_SECRET). Korzystaja z niego: - init-configs (--init) - zamiast wlasnych pytan i ensure_env_var, - make up / up-quick / refresh (ask-missing-config) - pyta RAZ o brakujace; pusta odpowiedz zapisuje VAR= = decyzja "nie mamy", nie pyta ponownie; bez TTY / pod BPP_SKIP_HEALTH_GATE / BPP_NO_CONFIG_PROMPT nie pyta, timeout/EOF nic nie zapisuje, - make configure - menu grup, zapis na koncu, - make config-check + make doctor (pozycja 7) - walidacja wartosci, - make docs-config-table - tabela w docs/konfiguracja/zmienne.md (test pilnuje aktualnosci). Swiezy .env z init-configs ma ten sam zbior zmiennych co wczesniej (+ 3 Freshdesk); migracja DJANGO_BPP_BACKUP_DIR dziala jak dotad. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Co
DJANGO_BPP_FRESHDESK_WIDGET_ID(domyślnie dotychczasowe205000000433). Gdy ustawionyDJANGO_BPP_FRESHDESK_WIDGET_JWT_SECRET, użytkownik jest uwierzytelniany w widgecie (FreshworksWidget('authenticate', {token, callback})) tokenem JWT z nowego endpointu/freshdesk/widget-token/(HS256,name/email/exp= +1h, odnawiany callbackiem). Bez sekretu — jak dotądidentify.DJANGO_BPP_FRESHDESK_WIDGET_ID_ANON(captcha konfigurowana w Freshdesku). Pusty = brak przycisku (domyślnie).freshdesk_widget.html(ID widgetu z konfiguracji zamiast literału), logika JWT dopisana dobpp/js/support-tab.js.openczeka, ażauthenticatetrafi do kolejki widgetu.docs/administrator/widget-wsparcia-freshdesk.md(+ nav w mkdocs,.env.example).Uwagi
never_cache. Sekret nigdy nie trafia do HTML.disablepolacf_page_urlz frontendu (prefill idzie docf_adres_url).Testy
src/django_bpp/tests/test_freshdesk_widget.py— context processor, szablon (anon/zalogowany, brak ID, brak sekretu w HTML), payload JWT, endpoint 403/404/200.test_admin_freshworks_lazy.py): JWT w adminie (hide → prefill → authenticate → open, token weryfikowany sekretem) oraz osobny widget anonima na stronie publicznej (hide → prefill → open, bezidentify).🤖 Generated with Claude Code
https://claude.ai/code/session_01Rb8Fst46CA2yvPhao1AriX