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ą

14.05.2024

Data Governance i Data Quality / Rosnący wpływ na biznes

Data Consulting

Najważniejsze są solidne fundamenty – to przesłanie sprawdza się zarówno jeśli chodzi o działalność budowlaną, jak i tworzenie procesów biznesowych. W tym drugim przypadku najczęściej opieramy się o dane, dlatego tak ważna jest ich jakość. Wraz z rozwojem zaawansowanych narzędzi do zarządzania danymi, takimi jak Business...

Phygital Illustration
08.05.2024

Phygital / Nowa era handlu

E-Commerce

Wraz z postępującą globalizacją technologia staje się coraz bardziej wszechobecna, a świat cyfrowy i świat fizyczny coraz bardziej się przenikają. Zacieranie granic pomiędzy tymi wymiarami zaowocowało powstaniem trendu zwanego „phygital”. Opisuje on synergiczną integrację tych dwóch światów w celu stworzenia nowych, innowacyjnych...

PIM Data Syndication Illustration
30.04.2024

Syndykacja danych / Skuteczne zarządzanie informacjami

Product Information Management

Adekwatne, sprawdzone informacje są prawdziwą siłą. Dla firm działających w różnych branżach stanowią często znaczący czynnik sukcesu w komunikacji z klientami i partnerami. Do optymalnego zarządzania informacjami służą systemy PIM (Product Information Management). Umożliwiają organizacjom skuteczne gromadzenie, zarządzanie i dystrybucję...

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>