Custom Layout w PimCore jako narzędzie ograniczania widoczności zakładek edycji dla wybranych użytkowników lub grup użytkowników

Każdy, kto pracował z danymi produktowymi, wie, że nie wszystkie parametry przypisane do obiektu powinny być widoczne i dostępne do edycji przez każdego użytkownika. Gdy tworzymy niestandardowy widok, uwzględniający wybrane parametry dla danego użytkownika lub grupy użytkowników, w PimCore występuje błąd, który odkrywa niedostępne dla tych użytkowników zakładki.

O tym, jak go naprawiliśmy i co było jego przyczyną, przeczytacie w poniższym tekście.


Jednym z narzędzi, jakie system PimCore daje swoim użytkownikom, jest możliwość definiowania więcej niż jednego layoutu formularza edycji dla obiektu danych. Można to zrobić z poziomu edycji klasy PimCore – przez otwarcie klasy, którą chcemy edytować i wybranie opcji “Skonfiguruj układy niestandardowe”, a następnie skomponowanie, w oparciu o już istniejące elementy danych, niestandardowego widoku edycji obiektu.

Custom Layout Definition

Mechanizm ten może po prostu umożliwiać tworzenie widoków, które później będą ułatwiać pracę nad obiektami danych określonym użytkownikom lub grupom użytkowników. Istnieje jednak use case, w którym musimy ograniczyć widoczność danych pól i możliwość ich edycji dla wybranych grup użytkowników.

Wyobraźmy sobie, że mamy obiekt produktu, wystawiany na stronie internetowej. Obiekt ten posiada parametry podstawowe (takie jak np. nazwa i jej tłumaczenia), parametry techniczne, dane finansowe i parametry SEO. Parametry SEO są związane z pozycjonowaniem strony obiektu w wyszukiwarce i są przetwarzane na stronie obiektu. Parametry finansowe są wypełniane przez księgowość i wysyłane do systemu ERP. Parametry techniczne określają właściwości samego produktu.

Od razu widać, że nie każdy użytkownik systemu powinien mieć dostęp do wszystkich zakładek, np. pracownicy księgowości nie powinni mieć możliwości edycji parametrów SEO i parametrów technicznych, a osoby odpowiedzialne za pozycjonowanie nie powinny mieć możliwości zmiany parametrów finansowych. W dodatku zbyt duża ilość zakładek może utrudniać użytkownikowi systemu korzystanie z formularza edycji.

Stwórzmy zatem niestandardowy widok, zawierający wyłącznie zakładki parametrów podstawowych obiektu oraz jego parametrów finansowych. Po jego stworzeniu trzeba go jeszcze przypisać do określonej grupy i ścieżki: żeby to zrobić, należy wejść w „Użytkownicy/grupy” / „Grupy”, następnie w zakładce „Obszary” wpisać ścieżkę, w której znajdują się nasze produkty, po czym obok wpisanej ścieżki wejść w sekcję „Ustawienia niestandardowe”„Układy niestandardowe” i wybrać stworzony przez nas niestandardowy widok.

Od tej pory pracownicy księgowości będą widzieć tylko parametry finansowe i parametry podstawowe produktu, który edytują. W systemie PimCore w wersji 5.8.4 i wcześniejszych znajduje się jednak błąd, który sprawia, że po odświeżeniu przeglądarki – jeżeli przed odświeżeniem produkt był otwarty do edycji – formularz produktu wczyta się ze wszystkimi zakładkami, również tymi, które powinny być ukryte. Błąd jest spowodowany tym, że żądanie o dane obiektu wysyłane przez frontend PimCore po odświeżeniu strony, zawiera pusty parametr layoutId. Sprawia to, że system wczytuje domyślny widok obiektu zamiast widoku ustawionego dla użytkownika/grupy użytkowników.

Żeby to poprawić, wystarczy zedytować linijkę 428 klasy Pimcore\Bundle\AdminBundle\Controller\Admin\DataObject\DataObjectController i zamienić istniejący warunek:

if (is_null($currentLayoutId) && !empty($validLayouts))

na:

if ((is_null($currentLayoutId) || !strlen($currentLayoutId)) && !empty($validLayouts))

Sprawi to, że PimCore będzie prawidłowo odświeżał niestandardowy widok obiektu po przeładowaniu strony.


Nasz zespół przygotował poprawkę corowych mechanizmów PimCore, która została już oficjalnie zatwierdzona. Można ją podejrzeć pod adresem https://github.com/pimcore/pimcore/pull/4479.

Nasi eksperci
/ Dzielą się wiedzą

16.02.2021

Dlaczego warto realizować aplikacje mobilne w oparciu o usługi AWS?

Rozwiązania mobilne

Dzisiejsze aplikacje mobilne muszą spełniać wiele wymagań, szczególnie w obszarze wydajności, skalowalności i, oczywiście, opłacalności. Zdecydowanie potrzebna jest więc zaawansowana, wspierająca owe aplikacje infrastruktura.  Frontend aplikacji bazuje na sprzęcie użytkownika, jednak to nad backendem mamy największą kontrolę. Zarówno...

02.02.2021

7 objawów długu cyfrowego

Konsulting IT

Poprzedni artykuł poświęciliśmy rosnącemu znaczeniu długu cyfrowego – zwłaszcza w obliczu ostatnich wydarzeń. Tym razem skupimy się na powszechnych sygnałach, które mogą wskazywać na cyfrowe zadłużenie Twojej firmy lub konkretnych procesów. Bardzo możliwe, że obszary, których dotyka dług cyfrowy, stopniowo stały się częścią...

26.01.2021

Dług cyfrowy / cichy zabójca biznesów

Konsulting IT

Cześć biznesów mogła beztrosko działać offline – póki nie nadeszły okoliczności, które popsuły wszystkim nastroje. Ostatnie wydarzenia wyciągnęły na światło dzienne problem długu cyfrowego. Prosta, brutalna prawda na dziś: firmy i inne podmioty nagle znalazły się w rzeczywistości, która nie pozwala opierać działalności na...

Ekspercka wiedza
dla Twojego biznesu

Jak widać, przez lata zdobyliśmy ogromną wiedzę - i uwielbiamy się nią dzielić! Porozmawiajmy o tym, jak możemy Ci pomóc.

Napisz do nas

<dialogue.opened>