KamoCRM

Nawiązania czatu bramowego, wiadomości głosowe i nagrania połączeń o więcej niż org+clearance

FixDocsService
Szycy
23 września 2026 02:08 UTC
Autor
Kamo
Pochęt się
01ee8eb

MediaService/telephony store chat attachments (CHAT_AT_ATTACHMENT) i nagrania poczty głosowej/call (VM_RECORDING, CALL_RECORDING) na ACCESS_LEVEL 0. Każda ogólna ścieżka obrazowania (/pobierz, /stream, /bulk-download, /list, /delete) autoryzuje Ogólna kontrola org+clearance, tak więc każdy członek org VIEW_DOCUMENTS może odczytywać, eksportować lub wymieniać załącznik do czatu każdego kolegi, pocztę głosową lub połączenie Nagrywanie — poza rozmową, która została udostępniona, w przeszłości odwołany załącznik (MediaObjImg.isAccessUprawnione) i niezależnie od tego, czyj to nagranie. /delete dodatkowo Nigdy nie czytaj ImageAssocType.isAllowDelete w ogóle: każda kategoria, w tym PATIENT_CHART i CATALOG_SOURCE (oba uchwyt jestAllowDelete-false specjalnie dlatego, że ich usuwanie niszczy Dowody na ujawnienie księgowania lub opublikowanego wskaźnika pochodzenia zależy), może być Delikatny, usuwany przez ten jeden punkt końcowy, niezależnie od własnej reguły. New MediaAssocAccess (znaleźwka wspólna-wspólna bibliotekaByImg_Id, popchnięta oddzielnie jako warunek wstępny) Dodaje węższą regułę tych trzech typów asocjacji zawsze brakowało: CHATTACHMENT Wymaga członkostwa w MediaSession nazwane przez assocObjectId (i honoruje jestAccessRevoked); VM_RECORDING/CALL_RECORDING wymaga własności (createdByMember) lub MANAGE_VOIP_SETTINGS — Właściwa strona administratora Ustawienia Telefonu, która już zamyka swój cross-extension Voicemail view behind. Przełącz się na każdą ścieżkę odczytu/eksportu/listy/usuwanie; /list również upuszcza trzy typy z a Niefiltrowane zapytanie "podglądaj wszystko" w DocumentListQuery (korespondent, który wyraźnie prosi o jedno pytanie Przez assocType nadal go dostaje, filtrowany na rzędy). /delete teraz również rozwiązuje skuteczne isAllowDelete (ImageAssocType default, ImgOrgAssoc org-wide nadpisać) przed dotknięciem wiersza, przeczytaj Bezpośrednio poprzez imgRepository zamiast getDocumentMetadata – usunięcie celowo nigdy nie Podległe odpływowi pułapu, który czytany narzuca, a to to zachowuje. Nowe testy: MediaAssocDostępTest (11 przypadków, własna logika strażnika) i ImagingControllerMediaAssocTest (9 przypadków, udowadniając, że każda witryna rozmów kontrolera faktycznie ją wywołuje). Sprawdzone mutacje: zmuszanie MediaAssocAccess-oneialReason do powrotu do zerowych zakrętów 5 razy MediaAssocDostępne przypadki czerwone; przywróci kontroler/dokumentListQuery okablowanie do pochodzenia / głównej Przełamuje budowę od razu (wymagany jest nowy argument konstruktora), co jest porażką przez Budownictwo, a nie przez twierdzenie. Pięć wcześniej istniejących testów ImagingController zaktualizowanych do przejścia Nowy Docstor (prawdziwy przykład, w którym testowany punkt końcowy teraz dotrze do niego; null tam, gdzie Zrozumiałe jest, że nie). Pełny pakiet: 725 testów zielonych (było 705; +20 nowy).

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Start Free ForeverZobacz ceny