Node Access on the fly

bnorbi képe

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!

sgabe képe

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.

0
0
pp képe

Egy webalkalmazás mindig on the fly dönti ezt el, nem értem a kérdést.

pp

0
0
drifter képe

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.

0
0