Node Access

tamas84 képe

Sziasztok!

A Node Access-t telepítettem az oldalamon a tartalmak hozzáférésének adminisztrálásához. Szépen meg is jelenik a táblázat a jogosultságok beállításához. De valahogy mégsem stimmel valami. Vagy minden tartalom válogatás nélkül elérhető. Vagy pont az érhető el az azonosítatlan felhasználoknak, amit nem akartam.

Van valami tapasztalatotok ezzel a modullal?

Előre is köszönöm!

Üdv.: Tamás

Drupal verzió: 
szato képe

Én az "$Id: nodeaccess.module,v 1.4.2.7.2.11 2008/07/21 22:56:07 mantyla Exp $" verziót használtam. A jogkiosztás működött, azzal nem volt gond, de az alap koncepció nekem nem felelt meg: bármilyen módosítás után újraépítette a tábláját, bejegyezve minden node-hoz az aktuálisan beállított jogokat, tehát ez node-onként több bejegyzés (csoport*jogok). Ez kicsit nagyobb site-on (több 100 ezer node) elég nagy meló. Az adatbázist is leterhelte, de a nagyobb gond hogy nem fért bele a php futási idejébe (ha nem saját a szerver, nem tudom, hogy egyáltalán ki lehet-e ezt küszöbölni) - amit nem tud folytatni, ha újból futtattam, újból kezdte a tábla építést. Szóval én ezt meguntam, kikapcsoltam a module-t és hook_menu()-ben kezelem a hozzáféréseket.
Nem akarom elvenni a kedved :), remélem vannak jó tapasztalatok is. Egyébként próbáld ki, és írd le a tapasztalataid Te is.

0
0
pp képe

Az a tábla nem a Node Access táblája, hanem a Drupal node_access táblája. A Drupal ugyanis alapból rendelkezik tartalom hozzáférés szabályozással a különböző modulok ehhez csak egy kattintgatós felületet adnak hozzá. Ilyen a Node Access is. Nyílván nagy mennyiségű node-nál ilyen modulokat nem túl jó ki-be kapcsolgatni. Milyen Drupal verziót használtál egyébként? (ha lesz időm megnézem a hatost, hogy használja-e a bathAPI-t erre, de szerintem igen, tehát ott "nincs ezzel probléma")

A hook_menu-vel meg az a probléma, hogy az csak akkor tudja tiltani a node megjelenítését, ha magát a nodeot nézed. Listában ettől még meg fog jelenni.

Én egyébként a content_access modult szoktam javasolni. (ennél is mint minden tartalom hozzáférést szabályzó modulál fel fog lépni az általad vázolt probléma)

pp

0
0
szato képe

Egyetértek, a hook_menu() nem a tökéletes megoldás. Én csak azt vázoltam, hogyan oldottam meg (az én esetemben ez elég volt).
Az általam használt module létrehozott egy "nodeaccess" táblát, de igazad van, a node_access táblát építgette minden módosításkor:

function nodeaccess_admin_form_submit($form_id, $form_values) {
  ....
  node_access_rebuild();
  drupal_set_message(t('Grants saved.'));
}

function node_access_rebuild() {
...
$result = db_query("SELECT nid FROM {node}");
    while ($node = db_fetch_object($result)) {
      $loaded_node = node_load($node->nid, NULL, TRUE);
      // To preserve database integrity, only aquire grants if the node
      // loads successfully.
      if (!empty($loaded_node)) {
        node_access_acquire_grants($loaded_node);
      }

Az eredmény ugyan az - minden node-ot beolvas és újraépítette a táblát (nem csak ki-be kapcsoláskor)
0
0
nagygdev képe

A hook_menu-vel meg az a probléma, hogy az csak akkor tudja tiltani a node megjelenítését, ha magát a nodeot nézed. Listában ettől még meg fog jelenni.

Nekem az Organic Groups (OG) használatával megoldódik az a probléma, hogy listákban (sőt, a menükben) sem látszódik az, ami nem az anonimus-ra és nem a csoporttagra vonatkozik. Bár eléggé zavaró, hogy ilyen fajta felhasználásnál mind az alap csoportokat, mind az OG csoportokat párhuzamosan kell adminisztrálni, de tökéletesen működik.

A párhuzamos adminisztráció hercehurcái miatt keresek épp egy normális Node Access alternatívát, de egy kicsit elszomorító, hogy a letiltott tartalom a listákban látható.

Tud valaki egy olyan Node Accesst, ami nem így működik?

0
0
aboros képe

általában a legjobb a pp által is említett content access. persze erősen függ tőle, hogy mit akarsz elérni, de az organic groups is előszeretettel használatos hozzáférés szabályozásra (is).

egyébként magának a node accessnek a projekt oldalán is azt ajánlják, hogy inkább a content accesst használjad:

The following modules can provide similar if not exactly the same security features as the node_access module.

Content Access (recommended)

0
0

-
clear: both;