KamoCRM

Przewiniaj podmiotMemberId i rola, aby TimecardService mógł zweryfikować posiadanie dziury

FixSecurityService
Shipped
23 września 2026 11:04 UTC
Author
Kamo
Commit
be57082

- rozstrzygnął rolę dzwonijącego przeciwko KLIENT-SUPPLIED TematMemberId (resolveRole -> EMPLOYEE, gdy aktor-subiektywnie) ale nigdy nie przekazał tego id lub Rozwiązana rola w dół rzeki. TimecardService załadował cios przez punchId i sprawdził tylko org, więc zapisany pracownik może przejść podmiotMemId siebie (trivilially autoryzowany) wraz z Prawdziwy punchId i edytuje lub unieważnia czyjeś ciosy. Obie wartości podróżują teraz na Przekaźnik, w ten sam sposób aprobataAkt już odgrywa rolę: podmiotMemberId pozwala TimecardService (tzw. Jeden trzymający punch row) potwierdza, że punchId faktycznie należy do członka, którym ten dzwonił Zezwolone przeciwko, a rola pozwala mu wyegzekwować blokadę łańcucha zatwierdzającego (patrz sparowany Poprawność karty czasowej-serwinej). Również: determinRole start isMangerOf's reporting-line query (skanowanie zatrudnienia w całym lubgzelu przed tym Zmiana) na każdym samopoglądzie przed sprawdzeniem aktora, mimo że nikt nie jest jego własnym Menedżer. aktor-subject jest teraz sprawdzany jako pierwszy, więc samopogląd nigdy nie dotyka linii raportowania, i Pozostały używany cross-member lookup - zamiast tego Z niefiltrowanego znaleziskaAll().

All changes

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.

Start Free ForeverView Pricing