Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-marketing
Dodaj /requests direct linki nav, sekcja strony głównej i wiersz porównania funkcji planu
- Nagłówek: żądania dodane jako bezpośredni związek najwyższego poziomu między ceną a firmą - Stopka: żądania dodane do kolumny produktu dla bezpośredniej widoczności - Strona cenowa: custom dev callout banner między wiązkami a porównaniem funkcji - Strona funkcji: opcje żądają wyłączenia przed CTA - Strona główna: nowa sekcja FeatureRequests między ceną a FAQ pokazująca dostęp do poziomu planu - JumpToBar: Dodano link do skupu między ceną a FAQ - DB: FEATURE_REQUESTS rozstawione w kategorii Wsparcie z wartościami tekstowymi na plan (Free: Community vote, Starter: Głosowanie i żądanie, Biznes: Pionowanie priorytetowe, Enterprise: Custom developer included) - KamoCRMPricingLoader: zaktualizowany o definicję funkcji FEATURE_REQUESTS i mapowanie funkcji planowych
· kamo-internal
Aplikacja w obie stronyConfigs + ustawienia nałożone na powierzchni + przełącznik prywatny
- BranchSetupManager: mapaBackendModel teraz nawilża ustawione urządzenieConfigs Zwrócone przez backend (dostępność + dozwoloneCommerceTypes na usługę Typ) zamiast resetować je do NIEAVAILABLE pod obciążeniem. Oszczędzaj ładunki Zarówno dla modeli dziecięcych, jak i głównych modeli obejmują aplikacjęConfigs, więc Dostępność za aplikację i ograniczenia typu CRM w obie strony. Mistrz Edytor modelu ponownie wykorzystuje mapęBackendModel, aby zachowywał się identycznie. - useAppliedModel hook: rozszerzony typ odpowiedzi teraz przenosi zastosowany Ustawienia skalowania modelu (pozwalajOwnersViewOtherOrgs, allowOwnersPrivateOrgs, allowSubChildOrgs, przedziały wiekowe, identyfikacjaDostawca, teamMemberPayFeesSUtting), aplikacja mapaConfigs i orgIsPrivate — tak dalej Przyszły redaktor (menedżer funkcji, konfisk OAuth, rynek handlowy) może być bramą Jednolicie bez ponownego piętnowania. - Przełącznik Private-org: nowa trasa proxy (PATCH) i karta widoczności wyłożona na zakładce typu rozgałęzienia, ogrodzone przez ZezwólujPrywatne orgii. Po włączeniu, inni właściciele org tego nie zobaczą Org w aukcjach. Optymistyczny interfejs UI godzi się z następnym stosowanym modelem Odśwież.
· BillingService
Enforce team-member pay-fees w tworzeniu klientów Stripe
Bumps kamo-shared-libiry zależność do 1.5.0, więc BillingService może rozwiązać Nowy AppliedModelEnforcementService i przewody członkowski w stosunku do org Wykonywanie opłat za wynagrodzenie w wysokości . - teamMemberPayFeesSetting - NOT_AVAILABLE: tworzenie specyficznego dla danego członka Klient rozliczający (samozapłata) jest odrzucany – org musi pokrywać opłaty. - teamMemberPayFesSetting - FORCE_ENABLE: tworzenie klienta na poziomie org Obejmowałoby to zarzuty członków zespołu, które zostałoby odrzucone – członkowie zespołu muszą zapłacić A sami. - OPTION: albo przepływ jest dozwolony. Egzekwowanie jest najlepszym wysiłkiem, kiedy org nie może zostać rozwiązany (konteksty dot. Dane o starszych danych) – popada na zachowanie dziedzictwa zamiast blokować.
· SecurityService
Przewód stosowany w każdym kontrolerze
Każde ustawienie nierole w zastosowanym modelu bezpieczeństwa jest teraz egzekwowane w Dokładna granica kontrolera, którym reguluje, a ustawienia skalarne w obie strony Czysto przez edytory modeli mistrza / dzieci, aby UI mógł na nich zdobyć bramę. - gdy rozgałęzienieTypeID jest ustawiony, spójrz w górę typu gałęzi, aby uzyskać org rodzica; zadzwoń Spółki wagżusNaZdrobnokatywne i assertAgeRangeAllpard zarówno dla członków, jak i członków Automaty do wieku drużynowego przed popełnieniem. Nowy PATCH /i-nowidoczność Punkt końcowy pozwala właścicielom flip organizować.Prywatny, zamknięty przez assertCanSetPrivate. getAllOrganizations obowiązują filterVisibleOrgsForViewer więc wyniki szanują oba systemy obsługidlaneOwnersViewOtherOrgs Na modelu widza i flaga Prywatna na kandydatach. - - call assertAppEnableAllowed / KonkurowanieWyłączenie urządzenia, więc NIEdostępne aplikacje NOT_AVAILABLE nie mogą być włączone i Aplikacje FORCE_ENABLED nie mogą być wyłączone. - OAuthConfig Kontroler POST/PUT: ZasługiwanieZarządzanieZarządzanie dostawca CRUD, gdy IDDostawcaUstawienia - NIEdostępne. - CommerceMarketController POST/PUT: assertCommerceTypeAllemd odrzuca Typ handlu nie wymieniony w aplikacji modeluConfig dla CRM. - SecurityModelController + MasterModelController: aplikacja w obie strony poprzez tworzenie/aktualnia ładunków i odpowiedzi GET. Nowy procesAppConfigs Pomocnik akceptuje formularz listy używany przez edytora frontend. - AppliedModelController: odpowiedź zawiera teraz pełne ustawienia skalarne blok (allowOwnersViewOtherOrgs, allowOwnersPrivateOrgs, allowSubChildOrgs, Przedziały wiekowe, IDDostawca, teamMemberPayFeesSUstawienie) i AppConfigs mapa, dzięki czemu edytory fronterów mogą jednolicie bramkować. Również powierzchnie orgIsPrivate, więc przełączanie prywatności pozostaje w synchronizacji.
· kamo-shared-library
Egzekwość każdego ustawienia nieroli na ChildOrgSecurityModel
Dodaje kompleksowe egzekwowanie przepisów dla pozostałych ustawień na zastosowaniu orgi Model bezpieczeństwa. Każde ustawienie, które wcześniej było tylko czytane (lub spadło na save) teraz ma ścieżkę wytrwałości, pomocnika w egzekwowaniu czasu pracy i interfejs użytkownika Hak, żeby go konsumować. Warstwa danych: - Organization.isPrivate (kolumna booleanowa, domyślna fałszywa) — org. Flaga widoczności, ustawiona przez nowy PATCH z magistrem MasterModelController Punkt końcowy. - UsługaDostępnośćType enum (OPTIONAL_DEFAULT_ENABLED / OPTIONAL_DEFAULT_DISABLE / NOT_AVAILABLE / FORCE_ENABLED). - ChildOrgSecurityModelAppConfig podmiot + usługa repo + - utrzymuje się na aplikację Dostępność (i CRM pozwoliły na handel detalu) wcześniej spadł na oszczędności. - W obie strony nowego podmiotu. Egzekwowanie czasu pracy: - AppliedModelEnforcementService konsoliduje każdą kontrolę stosowaną przez dzwoniący: assertSubChildOrgAllowed, assertAgeRangeAllowed, IdentyfikatorProvider Wymagane, con assertCanSetPrivate, filtrVisibleOrgsForViewer, TeamMemberCanSelfPayFees, isTeamMemberPayFeesForced / Blocked, AppableAllaped, conAppableAllaped, getAvailable, getAppAvailability, getDaultEnabledAppsForChild, assertCommerceTypeAllowe, DoAllniedCommerceTypes. Warzenie null: "brak zastosowanego modelu" pozwala na wszystko. - ChildOrgTemplateSeedingService rozszerzony o również rzędy OrgFeature z Aplikacja rodzica domyślnie (FORCE_ENABLED i OPTIONAL_DEFAULT_ENABLED) na nowych orgach dziecięcych, więc nowo zaopatrzonych orgs Wymyśl odpowiednią domyślną powierzchnię.
· kamo-internal
Blokowanie obowiązkowych ról systemowych w UI przydziału roli członków
- PublicProvider: dopuszczanie branchuTypeID/masterModelID na przychodzące Uprawnienie organizacyjne, dzięki czemu zakładka typu rozgałęzienia może niezawodnie ogarniać Przycisk "Edit Master Model" (wcześniej polegał na serializacji Jacksona Przepływ przez kontrolę typu rekwizytu). - RolesPermissionsTab: siatka wyboru ról oznacza teraz wymagany system role(-y) jako sprawdzone i wyłączone na podstawie typu członka i flagi właściciela: Członkowie na podstawie której nakładzili członkowie: "Członkowie" są zobowiązani. Członkowie zespołu na podstawie: "Posłowie zespołu" są zobowiązani. Właściciele naziemni na podstawie Team-Memity: "Administrator (Full Access)" jest dodatkowo Wymagane. "Wymagany" chip i wskazówka wyjaśniająca sprawiają, że ograniczenie jest widoczne dla Wydawca. Próba przełączania obowiązkowej roli jest no-op; backend Pojednanie w MemberSecurityController i tak by je przewidział.
· SecurityService
Egzekwania przydziału zadaniowego zadaniowego i auto-admin dla właścicieli członków zespołu
MemberSecurityController egzekwuje teraz trzy niewinne zadania Definisz w specyfikacji burzy mózgów: - saveMemberSecurity: przed uporem żądaną rolę dzwoniącegoIds, Utrzymuje zestaw o obowiązkowe role(-e) systemu w oparciu o typ członka: Członkowie nadawcy zawsze otrzymują roleMemberID; członkowie składu Team-Memity Zawsze otrzymują roleTeamMemberID; Właściciele członków zespołu dodatkowo zawsze otrzymują RolaAdminID. LinkedHashSet zachowuje zamawianie rozmówcy podczas dedupingu. - aktualizacjaMemberAccess: gdy flaga właściciela przełącza, rola administratora Jest dodawany lub usuwany na członka zespołu, aby utrzymać zadania ról w synchronizacji Z własnością. Przeliczanie na podstawie praw wykonywane w tej samej transakcji Tak więc odczyty poniżej patrz zaktualizowane skuteczne uprawnienia natychmiast.
· kamo-shared-library
Zastosuj reguły dotyczące siły szablonu i DEFAULT powrót do rozwiązywania praw członków
- teraz nakłada się na zastosowane 4 domyślne szablony zarolowania modelu na szczycie istniejącej kaskady (role zorg - dział - tytuł zaacytowy - członek: - Specyficzny typ ról FORCE_GRANTED/FORCE_NUKE wygrywa na wszystkich poziomach kaskadowych. Szablon jest wybierany według typu członka: używają posiadaczy członków zespołu ADMINISTRATOR, członkowie zespołu używają TEAM_MEMBER, gładcy członkowie używają MEMBER. - Wzór DEFAULT Wzór FORCE wygrywają nad kaskadą, gdy szablon typu ról Nie ma reguły siły dla tego prawa (na pierwszeństwo Q7). - Wartości nieforce DEFAULT (GRANTED/NUKE) działają jako ostatnia linia obrony dla Prawa, które zdecydowały się na NOT_SPECIFIED po pełnej kaskadzie. AppliedModelResolverService wstrzykuje się wtryskiwanie w taki sposób, jak .Autowired(wymagane-false) Istniejące okablowanie jednostkowe, które budują tylko dwa konstruktor-obowiązkowe Repozytoria nadal działają, poniżając do spuścizny ścieżki bez rządów.
· kamo-internal
Dodaj edytor wzoru głównego, szablony ról i giing siłowy
Powierza nowy model zabezpieczeń typu oddziałowego w interfejsie użytkownika: - zakładka typu branchy zyskuje przycisk "Edytuj model główny" (ukryty, gdy org ma przydzieloną gałęzięTypeID), która otwiera edytor modelu w master Tryb: bez pola nazw, żaden chip typu branch, save hits /master-model. - Edytor modeli (oba dodajnie-dziecięcy i editmaster-model) zyskuje nowy Sekcja "Default Security Roles" po "Użyczaj aplikacji", z zakładkami dla Administrator / Członek zespołu / Członek / DEFAULT i 5-wartościowe ustawienia (FORCE_GRANTED, GRANTED, NOT_SPECIFIED, FORCE_NUKE, NUKE). - Nowe użycieAppliedModel() haczyki pobiera /api/bezpieczeństwo/system stosowany raz I eksponuje isForced (prawoNazwa, klawisze roliType) do konsumpcji redaktorów. - Role bezpieczeństwa, działy, tytuły pracy i role na członka Strony ukrywają prawa zablokowane przez obowiązujące szablony: - zabezpieczenia iryle bezpieczeństwa: role systemowe wykorzystują ich dopasowany szablon + DEFAULT; Role niestandardowe używają tylko DEFAULT (odesła Q11 A). Działy + tytuły pracy: tylko DEFAULT (niespecyficzne). Strona członowska: szablon typu member (TEAM_MEMBER vs MEMBER) + DEFAULT (odesła Q8 C, pierwsza kolejność oceny typu). Nowe trasy proxy: /api/security/master-model (GET/PUT), /api/asewar/system-system (GET).
· SecurityService
Model Master-model + zastosowane-modelowe punkty końcowe i szablon-strzeżone org seeding
Dodaje kontrolery, które wychodzą na nowy przepływ bezpieczeństwa typu branch: - /api/security/master-model (GET/PUT) zarządza aktualnym mistrzem orgi Model; tylko do zapisu, gdy organizacja.branchTypeID jest zerowy. - /api/security/system-applied-model (GET) rozwiązuje ten model regulujący ten org I powraca per-template mapy sił-rule dla frontendowego przebijania. - SecurityModelController w obie strony widuje się w 4 domyślnych szablonach zastawowych jako część O swoich istniejących ładunkach twórz/aktualnia. - Administrator organizacyjny propaguje nowy oddziałTypeID z żądania Ciało i nasiona nowych ról systemowych org's 3 z zastosowanego modelu Szablony via ChildOrgTemplateSeedingService.
· kamo-shared-library
Dodaj model główny, domyślne szablony ról i zastosowanych decyzjator modeli
Przedstawia warstwę danych dla przepływu nowego modelu bezpieczeństwa typu oddziałowego: - Organizacja zyskuje zniweczalną gałąźTypeID i mistrzem Model ID. - Nowa RoleRightTemplateTettingType enum z 5 wartościami (FORCE_GRANTED, GRANTED, NOT_SPECIFIED, FORCE_NUKE, NUKE) dla ustawień szablonu. - Nowe DefaultRoleType enum (ADMINISTRATOR, TEAM_MEMBER, MEMBER, DEFAULT) Dla 4 szablonów ról dołączonych do każdego ChildOrgSecurityModel. - Nowe podmioty - i plus ich repozyty, serwis i DTO. - AppliedModelResolverService rozwiązuje model regulujący dany org (oddziałyType-inherited or master) i obnażają wyglądy. - ChildOrgTemplateSeedingService nasiona nowych ról systemowych dzieci lubgs' 3 z Wartości GRANTED/NUKE z szablonów zastosowanego modelu; wartości siły pozostają W szablonie i są egzekwowane w czasie wykonywania. Użytkownik końcowy OrgroleRight nadal używa 3-wartościowego RoleRightSettingType — Wartości siły są ściśle koncepcją warstwy szablonu.
· kamo-internal
Dodaj pole chip-input wózek w gałęzi do edytora modeli zabezpieczeń
- BranchTypeChipField z kolorowym tokiem kropkowym, edytowaniem etykiety i X delete - BranchTypeEditDialog dla name/dekorytu - Autouzupełnianie rozwijane z GET /api/security/branch-types, wyklucza typy modeli bieżących, pokazuje model źródłowy dla typów cross-modelów - uchwytSaveModel wysyła rozgałęzieniaTypes i usuwaBranchTypeds w ładowności PUT/POST - Tabele listy otrzymuje kolumnę typów gałęzi z kolorowymi chipami kropki - loadModels maps branchRozliczeniePrzejściowe z odpowiedzi backend
· kamo-login
Usunąć MANAGE_USERS od RoleRightType
· kamo-register
Usunąć MANAGE_USERS od RoleRightType
· kamo-internal
Usuń MANAGE_USERS od wszystkich referencji frontendowych
· kamo-shared-library
Usunąć MANAGE_USERS w prawo (id19) z RoleRightType enum
· kamo-internal
Dodaj trasę API zabezpieczeń typu oddziałów
· SecurityService
Typy rozgałęzień drutu do modelu zabezpieczeń CRUD
· kamo-shared-library
Rozwiń ChildOrgSecurityModelDTO z pełnymi polami i gałęziamiTypes
· kamo-shared-library
Dodaj usługę OrgBranchTypeService
· kamo-shared-library
Dodaj OrgBranchTypRepository
· kamo-shared-library
Dodaj OrgBranchTypeDTO
· kamo-shared-library
Dodaj OrgBranchType byt
· kamo-internal
Aktualizacja BranchSetupManager podtytuł do referencyjnej etykiety typu dynamicznego typu gałęzi
· kamo-internal
Z Nazwana zakładka Setup Oddziału do dynamicznego "branchLabel' Typy i aktualizacja adresu URL do typów gałęzi
· kamo-login
Zresetuj Capcha - po każdej nieudanej próbie logowania
Użytkownicy muszą ponownie sweryfikować, że są ludźmi po każdym nieprawidłowym uszycie. Powodów nagłąk.reset () i wyczyści CapchaVerified/payload stan Zarówno awarie poświadczeń, jak i błędy sieciowe.
· EmailService
Logo automatycznego wstrzykiwaniaUrl, logoSimpleUrl i orgName zmienne w momencie wysyłania
EmailTemplateService łączy teraz zmienne bazowe (logoUrl, logoSimpleUrl, orgName) Wywodzi się z domeny głównej orgi przed renderowaniem, więc wszystkie transakcje Szablony mogą odwoływać się do „logoUrl” i „logoSimpleUrl” bez rozmówców Potrzeba wyraźnego ich przekazania. Zaopatrzone przez dzwonienie wciąż ma pierwszeństwo.
· kamo-internal
Dodaj bramki uprawnień dla pól na poziomie użytkownika i sekcji zmiany hasła w MyAccountTab
· kamo-internal
Dodaj bramkę dostępu i tabela MANAGE_MEMBER_SECURITY do strony ustawień użytkownika
· kamo-internal
Dodaj zmianę hasła, Next.js API

Twój wszechświat czeka.
Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.
Bezpłatne na zawsze — nie wymaga karty kredytowej