Segítséget kérek.
Telepítettük a content access-t [és az ACL-t]. Átolvastam az elérhető leírásokat, és néhány hete gyűjtöm a tapasztalatokat velük. Content Access-nél megadtam az alapértelmezés szerinti csoportok hozzáférési profilját, valamint a használt node típusokra a "Enable per node access control settings" kapcsolót igen-re állítottam.
Rendben:
- tartalom felvitel után látom, hogy az új node csoport-hozzáférés táblája bejön a megadott alapértékekkel; tudom ezt változtatni is
? a régebben felvitt node-okat az új környezet úgy tekinti, mint szabadon hozzáférhető elemek. Újraszerkesztéskor sem érhető el a node szintű hozzáférés szabályozás almenü (ez már meglep)
Elakadok:
- új node felvitele után ellenőrzöm más user működési lehetőségeit. Eredmény: csak megtekintésre feljogosított csoport tagja képes a node szerkesztésére és törlésére is!
Mintha a content access féllábasan működne, azaz a szabályozó mechanizmusa alvó marad. Mi okozhatja?
Tippek:
- az átolvasott anyagokból valamit nem jól alkalmazok
- a tesztelés során valamit szisztematikusan félrehasználok, vagy nem csinálok meg
- élesített, de -tudatosan legalábbis- nem használt ACL jelenléte okozza
- valami admin művelet honlap szinten szükséges a szabályozás beindításához, és nem végeztem el
- modul kompatibilitási probléma
Mit javasoltok, merre lépjek tovább?
Köszönet, Péter
Jelenleg használatban
Drupal verzió: 5.6
MySQL verzió: 4.0.24
PHP verzió: 4.3.11
ACL verzió: 5.x-1.6
Content Access verzió: 5.x-1.3
Rájöttünk a gond magyarázatára
... hátha valakinek jól jön.
Az elakadásunk (ld. fent) okát találtuk meg: pontatlan ismeretünk a Drupalról.
Adminisztráció/Felhasználói hozzáférések/Tartalom adminisztráció=igen
beállítás magával hoz élő Szerkesztés, Törlés jogosultságot is.
-------------
Ez indokolt is: a tartalom adminisztráció a node utolsó tulajdonságainak módosítására ad jogot. Ez a művelet viszont praktikusan csak node szerkesztés közben érhető el. A törlés előfeltétele pedig az, hogy szerkesztés állapotba kerüljünk a node-on.
----------------
Nos, ez a mechanizmus a Content_access élesítése után is működött változatlanul. Nem vette figyelembe, hogy a node "Hozzáférési szabályai" (Content access) pontosan mit is specifikálnak. Hiába adtuk meg csak a View jogot, az általános Tartalom adminisztráció = igen beállítás engedélyezte a csoport minden tagja számára a node szerkesztését / törlését.
Amikor lekapcsoltuk a Tartalom adminisztráció jelzőt, minden node-ot a saját Hozzáférési szabályai szerint helyesen kezelt a Drupal. A Content Access helyes működésének ebben a környezetben tehát szükséges feltétele a Tartalom adminisztráció lekapcsolása a Felhasználói hozzáférések között.
(Ketten, párhuzamosan tesztelve a furcsaságot, egymástól függetlenül jutottunk ugyanarra az eredményre :). Köszönet a közös gondolkodásért.
filozófia
A Drupal-ban kétfajta szinten lehet jogosultságokat állítani. Funkcionális és adat szinten.
Ha valamit tiltasz funkcionális szinten, akkor magához a funkcióhoz sem fogsz hozzáférni, lásd fentebb. Ezért ha a tartalom adminisztráció funkcióhoz nincs jogosultságod, akkor nem állíthatsz semmilyen más adat szintű jogosultságot sem. Ha van jogod a funkcióhoz utána még kell jogosultság az adat alapú hozzáféréshez is.
A core rendszerben nincs olyan modul, amivel az adat elérési jogosultságokat lehetne állítani, de maga a rendszer működik. (ezért van az a furcsaság, hogy ha feltelepítesz egy ilyen modult és hibásan szeded le, vagy hibás maga a modul, akkor a beállítások megmaradnak és továbbra sem érhetőek el a tiltott tartalmak. ;))
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Evvel kapcsolatban lenne kérdésem.
A funkcionális szinten azt jelenti, hogy felrakom a modult és a korábban létrehozott felhasználócsoportot jelölöm a jogosultságoknál. Ha nem jól gondolom javíts ki kérlek.
Ha ez megvan akkor az access .... modulok telepítése után, tartalom szintű jogosultásgokat tudom állítani. Ha egy ilyen modult bekapcsolok, mindig figyelmeztet a Drupal, hogy frissítsem a jogosultságokat. Ezután a jól ismert indikátorcsík és eztán megjelnik a pulsz jogosultsági funkció ha visszatérek a tartalmakhoz. Ez lenne az adat szintű jogosultság?
Előfordulhat az, hogy ha felteszek egy másik access modult az felülbírál egy korábbi beállítást?
A Drupal alap rendszere
A Drupal alap rendszere tartalmaz egy felhasználó szintű jogosultság kezelést. Meg tudod mondani, hogy X user Y szempontból hozzáfér Z tartalomhoz. A "jogosultság kezelő modulok" semmi mást nem csinálnak, mint az X, Y és Z értéket beletolják az adatbázisba*. Tehát ha felraksz két jogosultság kezelő modult akkor azok jól összekeveredhetnek. A Content Access és az ACL tipikusan olyan modulok amiket lehet és érdemes is együtt használni. De mondjuk a Taxonomy Access-t és a Forum Access-t már nem biztos, lévén a Fórum modul erősen épít a Taxonomy-ra tehát ott nagy kavarokat tudsz okozni.
pp
* igazából minden júzer kap számos Y, Fi, [View,Edit,Delete] vektort kulcsot és minden tartalom úgyszintén. Ahol a kulcsok egyeznek ott a jelzett művelet engedélyezve lesz a felhasználó számára.
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Értem akkor ez lehet a
Értem akkor ez lehet a probléma.
Ha már mégis felraktam egymással ütköző jogosultságkezelőket, akkor mit lehet tenni?
Mondjuk leszedem mindet és újra configurálom (frissítem) a jogosultsági rendszert. Majd ha ez kész csak a kívánt modult rakom vissza?
Válaszodat köszönöm, már eddig is sokat segített!
Elvileg manuálisan is rendet
Elvileg manuálisan is rendet csinálhatok az adatbázisban ezek szerint? Hát ez szuper lenne. Szépen leszedek minden modult, amit felraktam a jogosultságkezelőkből és az adatbázisban átírom az access mezőt? (akár) Kivéve persze az Admint:))))
A Drupla a coderek Mekkája:D
hát ezt nem ajánlanám
ennél azért jóval érzékenyebb a node access system lelkivilága, hogy ilyenekkel borzolgassad. inkább szépen szedegesd le egyesével a jogosultság-kezelő moduljaidat, (uninstall is legyen meg) aztán építsd újra a jogosultságokat, aztán kezdd előlről a visszarakást.
persze megpróbálhatsz az adatbázisban "rendet" tenni, de én nem merném :)
-
clear: both;
Megértem, hogy nem
Megértem, hogy nem mernéd:)
Én nem ilyen vagyok, szeretném érteni, hogy működik. Ha nem merném sosem tudom meg. Legfeljebb ráfázik a localhostom és újratelepítem a Drupalt, adatbázisostúl. Élesben már csak akkor, ha tudom hogy múxik;) pontosan.
Azért kösz, sokat haladtam előre e téren, nektek köszönhetően. Remélem hamarosan viszonozhatom a szivességet.
nem biztos, hogy így érted meg a legjobban :)
ez tiszta sor, én is szeretném (és azt gondolom értem is). általánosan van a coreban egy "réteg" amit node access systemnek hívunk. az ilyen modulok, mint a content access, tac lite, og, stb. szóval minden ami node szintű hozzáférést szabályoz, ezt a node access systemet használja a megfelelő hookok implementálásával.
http://api.drupal.org/api/group/node_access/6
itt van hogyan működik.
ha szeretnéd megérteni, akkor szerintem ne úgy próbáld, hogy az adatbázist nézegeted, mert úgy nehezebb lesz, nekem legalábbis sokkal nehezebb. inkább olvasd el az api dokumentációt és próbálj írni egy modult, ami csak a szerzőnek engedi megtekinteni a nodeot, ha van benne egy "privát" checkbox bepipálva.
így megvalósítasz egy node access modult és érteni fogod. ezután olvasd el a content accesst sorrol sorra és érteni fogod.
-
clear: both;
Á kösz a tanácsot, jó ötlet!
Á kösz a tanácsot, jó ötlet! Igazad lehet kipróbálom. Jó kis iránytűt adtál.
Na ez már kiterjedet leírás.
Na ez már kiterjedet leírás.
Rákereshettem volna, kösz mégegyszer így sokkal könnyebb.
Szerintetek nem lenne jó
Szerintetek nem lenne jó csinálni egy wikit a Drupalról?
Múltkor sikeresen felraktam egy médiawikit a Drupal mellé. Egy prefixxel az adatbázisba és simán megy. Azért prefix, mert korlátozott azon a tárhelyen az adatbázisok száma. Lehet hogy bezavar a jogosultságokba?, bár nem szabadna szerintem.
Egyébként van valami feltétele egy magyar nyelvű Drupal wikinek? Honnan lehet erre jogosultságot vagy engedélyt kérni? Fordításban benne lennék és tök jó tudásbázis lenne;)
Bocs, a fél offtopcért:)
szabadon csatlakozhatsz
tárt karokkal vár a dokumentációs csapat.
http://drupal.hu/levelezolistak
jelentkezz, bevesznek. szerkeszthetsz könyvlapokat, újakat hozhatsz létre, miegymás.
-
clear: both;
Aham, kösz:) Jelentkezem, ha
Aham, kösz:) Jelentkezem, ha már magamnak gyűjtöm az anyagokat Drupalról, akkor már lehetne közhasznú is,)
Például mentem az adabázist
Például mentem az adabázist elöször.
Aztán egyenként leszedegetem az access modulokat. Frissítve a jogosultságokat. Aztán újra mentem az adatbázist. Szépen összehasonlítom és már látom, hogy mikbe nyúlt bele.
Ha ez megvan, akkor szépen elkezdem egyenként visszarakni a jogosultságot felülbíráló modulokat és megnézem, miket csinál az adatbázisban. Leszed, felrak, leszed, felrak....etc. Biztos rámegy egy napom, de tudni fogok ezt-azt a jogosultságokról;)
Például a user táblában van egy access mező, azt már nézegettem, de még kezdetlegesek az ismereteim ebben.
Amit PP mondott, az komolyan elgondolkodtatott. Ezt a témát alaposan ki kell veséznem, mert ez mindenhova kell ill. kelleni fog. Kicsit zavaros nekem, hogy miért ez a kétszintű filozófia. Biztos meg van az oka. Ha tudtok erről valami doksit, magyarangol nyelven, azt megköszönném. Annál gyorsabban haladok.
Ez járható út lenne, nem?
Drupal fanatics :)
Nekem is a hozzáférés
okozta a problémát. Tanácsodnak megfelelően minden jogosultságkezelőt leszedtem - uninstallal együtt. Jelenleg az ACL, Forum_accesse és a node_accesse jogosultságkezelő modulokat telepítettem. Újraépítettem a hozzáféréseket.
A problémám megoldódni látszott.
Azonban könyvvázlat készítésénél a következő hibaüzenetet kaptam: "user warning: Duplicate entry '166' for key 2 query: INSERT INTO book (nid, mlid, bid) VALUES (166, 2140, 166) in..." .
Egyetlen könyvlapom sincs, egyetlen lap sem jelent meg.
passz
légyszi nyiss új témát a kérdésednek.
valaminek kell már lennie 166 -os nid kulccsal a book tábládban.
-
clear: both;
Ne ezt nem igazán vágom:)
Nakos hozzászólása miért offtopic?
Minimum ezért: Jelenleg
Minimum ezért:
Jelenleg használatban
Drupal verzió: 5.6
MySQL verzió: 4.0.24
PHP verzió: 4.3.11
ACL verzió: 5.x-1.6
Content Access verzió: 5.x-1.3
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
mert teljesen más
ez egy két éves segítségkérés, néhány dolog fejlődött, változott azóta. pl nem tartom valószínűnek, hogy 5.x drupalban próbálkozik a kolega. ha mégis, az probléma :)
mindazonáltal a hibaüzenet tanúsága szerint a book modullal van a probléma, olyan kulcsot akar a táblába illeszteni ami már létezik. valszeg ennek a content accesshez és az aclhez semmi köze nincsen. se a content access se az acl soha semmit nem fog írni a book táblába, a hibás lekérdezés viszont ugye oda ír: insert into book ... így kezdődik, onat lehet tudni. :)
továbbá minden offtopic, ami nem a konkrét eredeti témafelvetésre érkező megoldás-javaslat.
-
clear: both;
Oké, értem. Azért kérdeztem,
Oké, értem. Azért kérdeztem, mert jobb lenne elkerülni az ilyen surlódásokat. Jó lenne érteni a filozófiátok, hogy tudjam mit is kell pontosan betartani.
Azért válaszoltam neki, ha nem baj, mert szerintem nem véletlenül ide tette fel a kérdést.
Mindazonáltal jó lenne eltalálni is a fórumon, csak azt kell hozzá tudni, hogy mi az ami még belefér és mi nem. Szerintem nem lenne rossz ezt valami feltűnő helyen kifüggeszteni, nem? Szegény kezdő fórumozó nem tudja. Rákeresett, idetalált, feltette a kérdést a problémájára és akkor meg valahol tök máshol legyen a válasz? Csak ezért kérdeztem, hogy akkor mi a logikátok?
Fura egy kicsit elsőre, főleg ha nem elég következetes a szabályozás. Mondjuk rád ez utóbbi nem jellemző.
Hagyományosan a fórumozás alapszabálya az,
hogy ha új vagy egy közösségi oldalon, akkor 2-3 hétig nem illik még kérdezni, hanem figyelni a korábbi tagok beszélgetését. Ha így teszel, elég hamar beleszaladtál volna (naponta előjön), hogy új kérdést új témaként küldünk be.
A node/add/forum útvonalon pedig elolvashatod az írott szabályokat.
Nagy Gusztáv
Köszi, megnéztem! Mindig tanul az ember valamit.
Köszi, megnéztem! Mindig tanul az ember valamit.;)
Az adatbázis tartalmát is ki
Az adatbázis tartalmát is ki kell törölni. Azt nem tudom megmondani ebből pontosan melyeket, de valszeg azokat, melyek az access modulok használnak. Ahhoz hogy ezt pontosan lehessen tudni, kell az összes korábban fent lévő access modul listája.
Egyébként nem túl nehéz, bemész az adatbázisban a phpmyadmin-nal a táblákba, esetleg a biztonság kedvéért csinálsz egy exportot az érintett táblákról és megnézed a nid, mlid, bid mezőket és letörlöd a tartalmát. (Az egész sort/recordot!) Lehetőleg mindenhonnan következetesen. Nekem bevált.
Bár most már úgy csinálom a tesztjeimet a localhoston, hogy rendszeresen csinálok archivot az adattáblákról és ha gáz van visszatöltöm.