KamoCRM

Org-scop RetailService şi ***************

Fixkamo-shared-library
Expediere
23 septembrie 2026 la 12:42 UTC
Autor
Kamo
Comite
19505fa

Fiecare handler get/update/delete-by-uid sub TradeMarketController's retail subresurse (categorii, mărci, atribute/valori, imagini, variante, etichete, recenzii, clienți, niveluri ale clienților, clase de impozitare/zone/rate, reduceri, preț liste/entrii, carduri cadou, locații, niveluri de stoc/ajustări, transport zone/metode, transportatori, transporturi, vagoane/căruțe, proiecte de ordine, ordine notes) solutioned the row through a good findById (uid) /deleteById (uid), with no Verificați dacă rândul a aparținut organizației apelantului. Orice autentificare membru al oricărui org ar putea citi, edita sau șterge rândurile unei alte organizații după ghicitul sau enumerarea unui uid - pentru clienţi (idente secvenţiale lungi) acest lucru a fost o scurgere de nume, e-mail și cheltuieli; pentru carduri cadou, niveluri de stoc și coș în total a fost să scriem acces la banii şi inventarul altui chiriaş. GetMarketVendors a avut deja același decalaj: frații săi POST/PUT/DELETE a rezolvat piata prin intermediul gindByIdAndOrganizationId, dar GET nu a facut-o. Fixat prin orgId filetare în fiecare dintre aceste cautari: - Entități cu propria lor coloană de organizare (cele mai multe dintre ele) rezolva acum prin intermediul unui nou findByUidAndOrganizationId depozit metoda, oglindirea Nu-ţi face griji. model (un explicit @Query, din moment ce câmpul de identificare al acestor entități este "uid" (nu "ID")). - Entități fără coloană de organizare proprie (imagini/varianți produs prin produsul lor, valori atribute prin atributul lor, elemente de coș prin intermediul Coșul lor, rubricile din lista de prețuri prin intermediul listei lor de prețuri) sunt vizate printr-o O să fie bine. interogare aderarea la org părintelui. - O mână de taste străine create-timp luate verbatim de la organismul de cerere (un ID al pieței, un ID al categoriei-mamă, un ID al nivelului clientului, o zonă/clasă fiscală; o legătură transversală imagine/variantă, un transportor/locație, un proiect comanda a salvat adresa) a primit aceeași privire org-scoperit, închidere aceeași clasa de decalaj la ora de scriere, nu doar la citirea/actualizarea/eliminarea by-id. - uita-te-upMarket și noul LookupOffering (id, orgId) supraîncărcare centralizează Acest lucru pentru fiecare crea handler care le-a numit anterior nescoperit. - obtineMarketVendors acum rezolva piata prin findBy Id andOrganizationId înainte de listarea vânzătorilor, potrivirea propriilor frați. În fiecare caz, un rând străin-org răspunde acum exact ca unul lipsă: același excepţie, acelaşi mesaj, acelaşi răspuns HTTP, handler-ul deja produs pentru un uid rău - nici o informație nouă este scurgeri de fix în sine. Atribuire în masă: updateGiftCard nu mai acceptă curentBalance de la cere corpul. Nu există RoleRightType (MANAGE PRING, MANAGE ORDERS, ...) acoperă în mod clar ajustarea manuală a soldului, astfel încât pe statutul coordonatorului instruire pe care nu am inventat-o; un membru același-org poate încă edita Celelalte câmpuri ale cardului sunt exact ca înainte. Notă pentru coordonator: kamo-internă MarketDiscountsTab.tsx cadou-card edita dialog trimite curentBalance astăzi și acest domeniu va fi acum ignorat în tăcere - un echilibru de ajustare dedicat Obiectivul final (mirroring /stock- levels/ {uid}/adjust) în spatele dreptului propriu este fix dreapta și are nevoie de o decizie de produs, nu un nou RoleRightType unilateral. De asemenea, fixat în trecere în timp ce re-conducerea acestor semnături: creareaShipment citeste comandaId de la locul gresit (controlorul trecea orgId poziţionat în cazul în care comandaId a aparţinut; UI trimite întotdeauna comandaId în Corpul Post) - acum citește comandaId de la corp, care este ceea ce fiecare apelant Deja trimite. E o soluţie funcţională, nu una de securitate. Teste: RetailServiceOrgScopingTest și *************** acoperă o resursă reprezentativă pentru fiecare model de depozit (coloană org; via-parent join) with a strain-org read/update/delete that fails without fix și un apel același-org care reușește, plus masa cadou-card- Regula misiunii. Mutație verificată: Revenind căutările pentru a găsiById toate cele nouă teste "orgei străine" nu reușesc roșu; restaurat înainte de a comite.

Toate modificările

Ca ceea ce vezi de transport maritim?

Toate acestea ajung în spațiul de lucru pe cont propriu. Începeți cu planul gratuit și citiți această pagină din nou într-o lună.

Pornește gratuit pentru totdeaunaVezi prețurile