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ą

24.12.2024

Nowe regulacje prawne / E‑commerce 2025 

E-Commerce

Rok 2025 przynosi ważne zmiany w regulacjach dotyczących handlu online, które mogą znacząco wpłynąć na funkcjonowanie sklepów internetowych w Polsce i całej Unii Europejskiej.    Lepsza ochrona konsumentów, transparentność i zrównoważony rozwój – to główne cele nadchodzących zmian. Sprawdźmy zatem kluczowe regulacje prawne...

16.12.2024

Trendy e-commerce 2025 – przed nami rok wyzwań, szans i optymalizacji 

E-Commerce

Rok 2025 w e-commerce to czas dostosowywania się do wyzwań gospodarczych i poszukiwania sposobów na zwiększenie efektywności działań. Nie oczekujemy rewolucji – kluczowym kierunkiem będzie optymalizacja procesów, usprawnianie obsługi zamówień i efektywne zarządzanie kosztami. Jeszcze większe znaczenie zyska sztuczna inteligencja, której...

05.12.2024

Pricing Omnichannel 360° / Kompleksowe zarządzanie cenami dla maksymalizacji zysków

Digital Experience

W czasach dynamicznych zmian rynkowych i coraz bardziej wymagających konsumentów, pricing stał się jednym z najważniejszych narzędzi strategicznych w biznesie. Odpowiednie zarządzanie cenami pozwala firmom nie tylko reagować na zmieniające się warunki, ale także maksymalizować zyski i budować przewagę konkurencyjną. Kompleksowe podejście do...

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>