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?
Menüpontok jogosultsága.
Drupal verzió:
Alternatív megoldás
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).
Nem blokkban, hanem menüben kellene megoldani. Köszönöm!
Nem blokkban, hanem menüben kellene megoldani. Köszönöm!
Lehetőségek
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.
A Google a barátod
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.
:D Nyár van, de sebaj itt egy másik tipp
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
Ezt régebben is próbáltam
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.
Megoldottam, de nem úgy, ahogy szerettem volna
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.
Nekem ez bevált
Én ezt a modult használtam már hasonló feladatra:
https://www.drupal.org/project/menu_per_role
Más lehet a hiba
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.
Még egy ötlet
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ó.
Elsőre bonyolultnak tűnik.
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.