Menüpontok jogosultsága.

Joee képe

Készítettem egy menüt a Primary menu blokkrégióba. Cím: Fő navigáció, Programok által használt név: fonavigacio. Létrehoztam a menüpontokat, köztük egy "Tartalom létrehozása" menüpontot. Hivatkozása: "/node/add". Telepítve van a "
Drupal 8 Mega Menu" modul (WeMegaMenu Toolbar). Sehogy sem tudom elérni, hogy a "Tartalom létrehozása" menüpont csak az Admin joggal rendelkezőknek jelenjen meg. A sima usereknek ugyan nem töltődik be a "/node/add" hely, de szeretném ha nekik nem is látszana. Próbálkoztam a "Menu Item Role Access" és a "Menu Item Visibility" modulok telepítésével, hogy majd azokkal kezelni tudom, se semmiféle sikeres változás nem történt, minden változatlan maradt, eredménytelen maradt a menüpont láthatósága. Van-e valakinek ötlete, hogyan tudnám megoldani a szükségtelen menüpontok eltüntetését a felhasználók elöl?

Drupal verzió: 
duc-sai képe

Szia!

A kérdésedre ugyan nem tudom a választ (soha nem volt szükségem erre)...de alternatív megoldás lehet, ha egy külön blokkba teszed a menüpontot, a blokkok esetében be tudod a jogosultságot állítani (nekem ez tökéletesen működik).

0
0
Joee képe

Nem blokkban, hanem menüben kellene megoldani. Köszönöm!

0
0
HF leon képe

Google a barátod ;)

Még nem volt külön menüpont jogosultságkezelésre szükségem -így nem próbáltam ezen modulokat, -de remélem az egyik megfelel ezek közül számodra.

0
0
Joee képe

A Google a barátod, ahogy a Drupal modulkeresője is. Ha figyelmesebben olvastad volna a nyitó hozzászólást akkor láttad volna, hogy pont ezekkel a modulokkal próbálkoztam, de nem hozott sikeres eredményt. Köszönöm a hozzászólásod.

0
0
HF leon képe

Látom már. A problémád a Mega Menü okozza.

Itt egy másik lehetőség:

https://www.drupal.org/project/menu_item_extras

1
0
Joee képe

A Menu Item Extras modult is próbáltam több hónapja, de azzal valami más probléma volt, így a jogosultságok kezeléséig nem jutottam el vele. Lehet, hogy csak nem lehetett vele megvalósítani azt amit terveztem. Most a problémát megkerülve, úgy oldottam meg, hogy az idegenek elöl elrejtendő menüpontokat beraktam az admin menübe, így az csak az adminoknak jelenik meg. Gondoltam én is arra, hogy a Mega menü okozza a problémát. Valószínű nem kezeli a jogosultságokat vagy valami egyedi módszerrel amit nem ismerek. Köszönöm a hozzászólásod.

0
0
Joee képe

Telepítettem az "Admin Toolbar" modult, amellyel az Admin menübe tudtam létrehozni a szükséges menüpontokat, így azokat eleve csak az Admin jogosultsággal rendelkezők láthatják. Nem ide szerettem volna, de mindegy. Működik.
Ha valakit érdekel a módszer akkor szívesen leírom részletesen.

0
0
gecseg.daniel képe

Én ezt a modult használtam már hasonló feladatra:
https://www.drupal.org/project/menu_per_role

1
0
Joee képe

Valószínű, hogy a Mega Menü okozza a problémát, így nem fog segíteni egyik Drupal modul sem. A Mega menüt viszont egyelőre nem szedem le mert nem találtam helyette legalább ugyanolyant vagy jobbat. Így a userek elöl elrejtendő menüpontok maradnak az admin menüben. Nem szép megoldás, de a célnak megfelel és az oldal kinézetén nem változtat. Köszönöm a hozzászólásod.

0
0
HF leon képe

Nem biztos, hogy működik, mert nem próbáltam ki, de talán a legegyszerűbb megoldás lehet, ha nem akarsz modult fejleszteni a problémára.

A Mega Menüben lehetőség van extra osztályok hozzáadására. Az oldal sminkjében be kéne injektálni a Mega Menü témájába a jogosultságot. Ekkor eldönthető lesz az adott jogosultsági kör. A jogosultsági körtől függően pedig két irányba lehetne a menüelemek megjelenését legenerálni. Ha például admin vagy, akkor marad a hagyományos menüelem megjelenítés. Amikor viszont nem, akkor egy szűrővel kiszűrhetők lennének a megjelölt elemek. A Mega Menü lehetőséget ad egyedi osztályok megadására a menüelemeknél. Oda beírva a kívánt elemekhez például, hogy admin az elem, már meg is van jelölve.

Tehát a fenti megoldás esetén, amikor nem aktív az admin jog, akkor minden menüelem kirajzolásakor a twig szűrője megvizsgálja, hogy az adott menüelem rendelkezik-e a fenti példában használt admin osztállyal és ekkor nem adna kimenetet. Ha nem rendelkezik az admin osztállyal, akkor pedig úgy jelenítené meg a menüelemet, ahogy eredetileg is.

Tudom, tudom ez is igényel némi kódolást egy pici php és némi twig, de talán ez a legegyszerűbb. A pontos megvalósítás függ a Mega Menü működésétől, annak sminkrendszerátől. Ahogy elsőre látom az li twig-jét kell módosítani. Viszont a https://simplytest.me/ segítségével próbálva nekem most rendre elfelejti az extra osztályokat. Az admin felületen még megjelenik a mentés után, de újra betöltve, vagy a honlapon nézve, már nem.

Más esetben fel kell mérni a Mega Menü pontos működését és megvizsgálni, hogy miként lehet hozzá menüelem jogosultságkezelő kiegészítő modult írni, ha lehetséges.

Ha nem lehetséges, akkor magát a Mega Menüt kell átírni, hogy belekerüljön a jogosultságkezelés és megkérni a készítőket, hogy adják hozzá az alapkódhoz, különben mindig külön kel patch-elni, amikor kijön egy új verzió.

2
0
Joee képe

Elsőre bonyolultnak tűnik amit írtál. Borland Delphiben szoktam programozni és valamennyi php ismeretem is van így első olvasatra nem lehet egyszerű megvalósítani és a siker is elég bizonytalannak tűnik vagy túl sok munkát és időt kéne belefektetni. Önkínzásnak pedig nem vagyok híve. :-) Ráadásul a probléma megoldódott a menüelemek Admin menüsorba helyezésével. Szerintem nem érdemes foglalkozni vele. Köszönöm, hogy ennyit gondolkozol rajt, de nekem megfelel a mostani megoldás is és inkább más problémán gondolkoznék. Köszönöm a segítséged.

1
0