Implement app management UI with backend integration and dynamic permissions
Rewrite FeaturesManager to use backend API for app enable/disable with root-org gating for in-dev apps. Update NavPri to gate all nav items by org feature flags...
Add FeatureController for org app enable/disable management
REST endpoints for managing organization app features: GET features list, POST enable/disable with CONFIGURE_SYSTEM permission check, root-org-only gating for i...
Adăugați sistemul de management al aplicațiilor cu tipuri de servicii, drepturi și control al caracteristicilor
Restructurare ServiceType enum: adăugați steaguri centrale/depreciate, redenumiți DOC MANAGER→DOCS și AI CHAT→AI SUPPORT, adăugați tipuri de sprijin/NOTES/POS, ...
Sync settings nav with actual tab definitions across all pages
Add missing Mailboxes and CalDav/CardDav entries to email section in both the settings main page and the NavPri slide-out drawer. Fix Account section card linki...
Split mailboxes tab into sub-tabs for primary, aliases, shared
Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...
Provider save field name and mailboxes tab member list endpoint
Provider save for non-configurable types now sends correct field name. Mailboxes tab now uses **************** endpoint which actually exists, instead of non-ex...
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
Să nu uităm Eu nu persistă numele de utilizator în cadrul sesiunilor de autentificare
Revenirea a capturat o piesă veche. Amintiți-văMe a fost întotdeauna fals (stare inițială). Folosit un arbitru pentru a citi valoarea caseta de verificare live....
Provider save for non-configurable types and mailbox member email mapping
**************** selections now immediately persist via saveProvider API instead of only updating local state. Mailboxes tab now correctly extracts emailAddress...
Add email alias and shared mailbox UI support
Composer "From:" dropdown for switching between primary, alias, and shared mailbox addresses. New "Mailboxes" 6th tab in email settings for org-wide admin manag...
Add email aliases and shared mailbox support
New MailboxManager provider capability interface for alias and shared mailbox CRUD. KamoMailMailboxManager implementation manages dovecot/postfix virtual_users ...
Adăugați aliasuri de e-mail și entități cu căsuță poștală comună și depozite
Noi entități JPA pentru schema de e-mail ofertă: EmailAliasEntity (trimite-ca pseudonime pentru fiecare membru); Comment și SharedMailboxAccessEntity (subvenții...
Fix Pre TICKET DB constrângere + reproiectare formă de creare
- Constrângere fix CEC pe suport ticket.status pentru a permite ordinal 14 - Reproiectat TicketCreationForm cu UI moderne bazate pe carduri: - "Cum putem ajuta?...
Add PRE_TICKET status with Start Chat option
- TicketCreationForm: two buttons — "Start Chat" (pre-ticket, no title required, just topic) and "Submit Ticket" (full ticket with title) - TicketHeader: "Con...
Add PRE_TICKET creation and convert-to-ticket endpoint
- createTicket: when preTicket=true, sets status to PRE_TICKET, skips assignment (no title required) - PUT /tickets/{id}/convert: converts PRE_TICKET to NEW, ...
Adaugă starea PRE TICKET și steagul preTicket la cerere
Stare nouă PRE TICKET(14) pentru primele sesiuni de chat în care începe utilizatorul chat fără a depune oficial un bilet. Poate fi convertit la o bilet complet ...
Extragerea array-ului temelor din {topice: [...]} Răspuns API
Criteriul final GET /api/support/topics întoarce {topice: [...]}, nu a matricea brută. Toți consumatorii extrag acum date.topice înainte de a utiliza matricea.
Deschide fereastra de suport instrument de eroare și 404 pagini
Înlocuirea vechi / ajutor / tichet / navigare nou cu instrument:deschis CustomEveniment Pentru a deschide fereastra popup de sprijin direct.
Atribuiți roluri implicite membrilor privind crearea
*************** acum atribuie "membrilor" Rolul organizaţiei. Acum le dă pe amândouă. Rolul "membrilor" (toată lumea) și rolul "membrilor echipei" de la Organi...
Add POST **************** endpoint
Triggers org-wide member_rights_applied recalculation. Needed after schema migrations or manual DB changes to permissions.
Use targeted role-scoped rights recalculation
SecurityRoleController now uses updateRoleMemberRightsApplied() to only recalculate members who have the modified role, instead of recalculating all members in ...
Drepturi vizate recalculează pentru dept, titlu de loc de muncă și schimbări de rol
- DepartmentService: recalculeaza numai membrii din departamentul afectat după creare/actualizare/eliminare - JobTitlService: recalculează numai membrii cu titl...
Recalculează membrii rights aplicate după crearea de noi membri
Apeluri de actualizareDrepturile membreAplicate pe noul membru după ambele CreareOrganizare membre și de a creaOrganizareTeamMembru astfel toate drepturile de r...
Recalculate member_rights_applied after role create/update/delete
The member_rights_applied table was never recalculated when roles were modified, causing all members to have 0 applied rights. Now calls **************** after ...
Rebuild with updated shared library containing support permissions
SecurityService needs the new ACCEPT_SUPPORT_TICKETS and MANAGE_SUPPORT entries in RoleRightType enum to include them in *** session rights.
Selectează automat textul parolei privind autentificarea eșuată pentru reintrare rapidă
Editarea rolurilor, schimbul de etichete și sprijinul membrilor echipei
- Adăugați iAllowEditTitle și isAllowEditSecurity to SecurityRole interface - Permite editarea setarilor de securitate pe rolurile membrilor/membrilor de echipa...
Migrate Everyone role to Members and create Team Members role
- Rename ROLE_EVERYONE_ID column to ROLE_MEMBER_ID - Rename existing "Everyone (Applies To All)" roles to "Members" - Set **************** flags on existing sys...
Enforce role protection flags and add parent label support to session
- Enforce isAllowEditSecurity in SecurityRoleController update endpoint - Add parentMemberTitlePlural and parentTeamMemberTitlePlural to *** session - Resolve p...
Adaugă steaguri de protecție a rolurilor granulare și rolul sistemului membrilor echipei
- Adăugaţi isAllowEditTitle şi isAllowEditSecurity steaguri entităţii OrgRole - Redenumește rolulToți cei care au luat rolul de membru al Organizaţiei, adaugă r...
Adaugă afișarea de erori atunci când crearea de topic eșuează
Afișează mesajul de eroare API în dialog în loc să cedeze în tăcere.
Fixaţi încărcarea departamentului în topicManager
Trimite antet X-***-Token (matching DepartmentManager model) și extrage departamente din forma de răspuns date.departamente.
Adăugați Array.isArray gardieni pe răspunsurile API pentru a preveni erorile .map
API poate returna obiecte de eroare în loc de array-uri atunci când mesele backend Nu există încă. Păziţi toate operaţiunile cu Array.isArray.
Enable redirect following for MaxMind download
MaxMind returns 302 redirect to the actual file. HttpClient wasn't following it, causing the sync to fail with HTTP 302.
Add Support section to settings page
Adds Topics, Notifications, and Status & Response Times cards that link to /support?tab=settings.
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
