Node-okhoz való hozzáférésbeli kérdésem van, miszerint azt szeretném elérni, hogy a rendszerben lévő bizonyos privát node-okhoz bizonyos felhasználóknak legyen olvasási joguk.
(Alapesetben mindenki csak a sajátját olvashatja -> Node Privacy By Role segítséggel)
Gyakorlatilag azt szeretném, hogy ha egy felhasználó megnézi az adott node-ot (amihez alapból nincs joga), akkor a rendszer "on the fly" eldöntse egy függvény visszatérése alapján, hogy mégis megmutatja-e neki vagy sem.
hook_node_grants() -al próbálkoztam, de zsákutcának érzem. Valaki tud adni egy kis útbaigazítást?
Köszönöm!
Fórum:
van pár ilyen modul
Van pár ilyen modul, amik megoldásul szolgálhatnak. Lásd Node Access és Nodeaccess. Egyébként jó irányba indultál, csak a
hook_node_grants();
önmagában kevés.Legközelebb kérlek figyelj a téma indításra. Nem adtad meg melyik Drupal verziót, illetve kiegészítő modulokat használod.
hogyan lehetne máshogyan?
Egy webalkalmazás mindig on the fly dönti ezt el, nem értem a kérdést.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
adatbázisba menti
Szerintem arra gondolhat, hogy a hook_node_access_records lementi a node-hoz tartozó grant ID-ket az adatbázisba - ez node_save alatt történik, és nem "on the fly" node beolvasásakor.
Ellenben a hook_node_grants az a felhasználó oldaláról vizsgálódik, és az szerintem menet közben értékelődik ki. Ha ezzel a kettővel ki tudsz okoskodni valami számodra megfelelő megoldást, az azért jó mert mindenhol érvényes lesz: nem csak teljes node megtekintésekor, hanem a keresőben (search modul), views listákon stb.
Ha csak teljes node megtekintést szeretnél tiltani, akkor hook_nodeapiból elkaphatod a 'view' opot és átirányíthatod egy "ehhez nincs jogosultságod" oldalra.