Létrehoztam egy felhasználói csoportot, kvázi segéd-adminisztrátort. Azt gondoltam, hogy engedélyezem neki, hogy jogosultságokat adjon egyes felhasználóknak. Bekapcsolatm a "Hozzáférés szabályozás" részben, hogy legyen ennek a csoportnak joga a "user modul" "hozzáférés szabályozás adminisztrációja"-hoz.
Erre megjelenik az összes jogosultság annak a felhasználónak is, aki a segéd-admin csoportban van, többek között pl. az adminisztrator jog is. Vagyis tud magának nagyobb jogt adni, mint amije van.
Vagy rosszul látom?
P.
funkció alapú jogosultság kezelés
A Drupal alapban funkció alapú jogosultság kezelést tud. Ez azt jelent, hogy bizonyos funkciókhoz tudsz rendelni csoportokat(lásd hozzáférés szabályozás)
Tehát nem tudsz olyat csinálni, hogy csak bizonyos node/user/taxonomy-hoz adsz bizonyos jogokat. ;)
Hozzáférés szabályozással minden user jogaihoz hozzá fog férni a csoporttag, akár el is dobhatja ezt a jogát;)))
Egyetlen egy user van aki mindenre jogosult és ez az uid=1 user. (persze csak a core modulokban, mert lehet olyan modulokat írni ám, amiknél ez nem így van.)
Amit te szeretnél ahhoz fejleszteni kell (már ha nincsen) ilyen modult.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Ez nem teljesen van így
Tehát nem tudsz olyat csinálni, hogy csak bizonyos node/user/taxonomy-hoz adsz bizonyos jogokat.
A drupal.org modul repositoryjában meg kéne nézni a vonatkozó modulokat; van ott pl. taxonómia és node alapú hozzáférés szabályozás. Ha nem erre gondoltál, akkor bocs.
Egy trükk: az admin és a hardcore editorok számára kell fenntartani a node-ok publikálásának jogát; tehát alapértelmezttként nem-publikáltként kerül be/módosul az anyag. Lehet ez queue vagy más egyéb modullal megvalósítva.
Meg hát miért is adnál userek feletti admin jogot olyannak, akiben (a postod szerint) kételkedsz :) Az userek felett vagy egy külön user admin vagy a root szokott diktátorkodni :)
Über-user
Hát pont ez a baj. Ha van egy administrator-om, akinek mindenre van joga, meg van egy vice-admin-om, akinek szeretnék jogot adni arra, hogy bizonyos usereknek adjon jogot, hogy legyen fórum moderátor, meg feltöltögető user, ezt nem tudom megcsinálni. Mert ha adok a vice-adminnak jogot a hozzáférés szabályozásához, akkor őt semmi nem akadályozza meg abban, hogy magát vagy bárki mást adminná tegyen (főleg nem a Drupal). Holott logikus, hogy csak kisebb szintű jogokat adhatna ki, mint a sajátja.
Szerintem ez elég nagy gáz.
Ez nagyjából olyan, hogy van egy banki rendszer, ahol szabályozni tudom, hogy igényelek-e bizonyos szolgáltatásokat (hányszor kérek számlakivonatot, stb.), de ott virít mellette az a gomb is, hogy átállíthatom a jogosultságomat VIP userré is (és akkor nekem fizet a bank, ha tőlük kérek hitelt).
megoldhatod
Az űrlapok átszerkeszthetőek a modul módosítása nélkül a jogosultság / jogkör / csoport dinamikus ellenőrzésével is egy hook_form_alter() megvalósításban, és hasonlóképpen a validate szakaszba illeszkedő kódot is írhatsz, ami nem engedi beikszelni a jogokat (hogy nehogy kicselezze valaki, akinek ugyan az űrlap nem jelenik meg, de tudja a jogok neveit, és kamu HTTP lekérdezést generál). A programozói lehetőség a kezedben van, a Drupal megadja a sanszodat, hogy élj vele.
hiába logikus, de nem
hiába logikus, de nem algoritmizálható egy mátrixból annak az eldöntése, hogy melyik role az erősebb. ezért kell valamelyik goba által javasolt megoldást alkalmaznod
de igen...
Nem egy mátrixból kell kiszedni, hanem alapból nem szabad engedni, hogy adminisztrátori csoportba valaki úgy kerüljön, hogy a módosítást nem olyan UID kezdeményezte, aki maga az adminisztrátori csoport tagja.
Ebből következően pedig szerintem nem a role erősségét kell eldönteni, hanem egy tiltást kell alkalmazni...
Mindenesetre szerintem ez alap biztonsági kérdés, és nekem igen nagyon megdöbbentő volt, hogy ez az alap Drupalban nem megoldott.
egyértelmű, kivételmentes szabályok
Értelmezési kérdés ez, nem biztonsági rés. Ha valakinek megadod a jogot, hogy csoportba tegyen másokat vagy a csoportjogokat átírja, akkor ez minden csoportba tevésre vagy csoportjogra vonatkozik. A feladat alapú jogosultság kezelés, ami a Drupalban van, mindenre nézve így működik (például ha valaki tartalmat küldhet be, akkor azt bármelyik kategóriába megteheti). Most neked éppen itt túl széles ez a működési alap, és nem ott, hogy nem kellene tudni akárkinek akárhova tartalmat beküldenie (ami gyakoribb kérdés a drupal.hu-n).
Pedig teljesen így van
Érdemes nem csak kiragadni egy mondatot, hanem a teljes bekezdés lényegét leszűrni. Ami úgy kezdődött, hogy "A Drupal alapban". Az általad említett modulok nem merítik ki ezt a témakört, ezen túlmutatnak.
Kondicionális megfogalmazás
Ezt is írtam: "Ha nem erre gondoltál, akkor bocs." Mivel nem erre gondolt ...
igazad van, de mégse ;)
Egy trükk: az admin és a hardcore editorok számára kell fenntartani a node-ok publikálásának jogát; tehát alapértelmezttként nem-publikáltként kerül be/módosul az anyag. Lehet ez queue vagy más egyéb modullal megvalósítva.
Nem kell ide semmilyen modul! Ezt egy alap Drupallal meg tudod valósítani! Itt vagy a levlistán már leírtam hogyan, ha nincs kedved keresni, akkor gyere el a konfra ott is elárulom (persze csak akkor gyere, ha sikerült regisztrálnod ;) )
Meg hát miért is adnál userek feletti admin jogot olyannak, akiben (a postod szerint) kételkedsz :) Az userek felett vagy egy külön user admin vagy a root szokott diktátorkodni :)
Mondjuk képzelj el egy szerkesztőséget, ahol rovatok vannak. Itt szeretnéd elérni, hogy az adott rovatba csak az adott rovat szerkesztője küldhessen be nodokat. (ez meg lehet oldani egy alap Drupallal is;)) Azt is szeretnéd, hogy az adott rovat/osztály/akarámi vezetője egyben adminisztrátor is legyen, tehát tudjon felvenni, meg kirakni usereket. Megfelelően nagy user és rovat számnál ez egy baromi kényelmes dolog tud ám lenni ;) Azt azonban nem engedheted meg, hogy máshova is belepiszkáljon, nem direkt, hanem véletlenül. (Na ezt egy alap Drupallal nem tudod megtenni. ;) )
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Isten ments
Hogy Drupal hackerekkel vitatkozzak :)
[off]
A konfra feljelentkeztem, de sajnos nem tudok ott lenni, ezért leiratkoztam, hátha felszabadítok egy helyet valakinek.
[/off]
A példád nagyon jó, de egy picit messzire vezet. El tudok képzelni ilyen szerkesztőséget, hiszen magam is tagja vagyok egy ilyennek. Csakhogy szerkesztőségre is lehet/kell szabni a jogosultságokat: a drupal.hu szerkesztősége v. a Weblaboré tudja, mit csinál; ám ez nem minden esetben van így. A mi szerkesztőségünkben nincs full demokrácia, mert az emberek túlnyomó része nem tudja, mit csinál - annak ellenére, hogy van a rendszerre szabott, képekkel illusztrált kézikönyvünk (az oldal 2005 óta drupalon fut, tehát kb. 2 éve).
Ebből én azt szűrtem le fejlesztési tapasztalatként, hogy amíg nem érkezik a felhasználó részéről request, vagy nem indokolja valamilyen ötlet stb., addig a jogokat csak kevés számú szerkesztő gyakorolja, és ezek is nagyon korlátozottak.
A user kezelés ebben a vonatkozásban nem kizárólag a Drupal "gyengéje", van némi tapasztalatom más rendszerekben is, ahol jó bonyolult szabályok alapján lövöd be, mit tehet valaki és mit nem (puha diktatúra). A demokráciához (community webhelyek és webkettőpontnulla) felhasználói és fejlesztői tudatosság is kell, ami hát, nem mindig teljesül :)
De azt hiszem, nem efféle dolgokra kérdezett rá Pál Úr, úgyhogy itt most elnémulok :) Esetleg egy másik szálon folytatódhat a beszélgetés szerkesztőségekről, magazinokról, community webhelyekről.