Közzététel után a szerkesztés tiltása a beküldőnek

eMeLA képe

A tartalomtípus alapesetben nem közzétett, a moderátor teszi közzé.
Azt szeretném elérni, hogy a Közzététel után a beküldő ne tudja szerkeszteni a tartalmat, csak akkor, ha újból nem közzétett lesz a tartalom.

(az edit own .... content jogosultság nem jó, mert ott alapból nem tudja szerkeszteni a tartalmat)

Próbáltam a hook_access()-el saját modulból, de az csak akkor működik, ha a saját modulban hozom létre a tartalomtípust. Ez nem jó nekem.

Tudom blokkolni a hook_nodeapi() update ágában a szerkesztést, de a SZERKESZTÉS fül látszik, nem túl elegáns.

Megoldható valahogy ?

Drupal verzió: 
CsatolmányMéret
Kép ikon workflow_modul_pelda.png148.1 KB
Balogh Zoltán képe

Az miért nem jó a hook_nodeapi-ban, hogy ha update van és a node szerzője az éppen aktív emberke, akkor lekapcsolod a közzétett jelzőt? Szerkessze nyugodtan.

0
0
aries képe

Vagy hook_form_alter()-rel kiszedni (vagy adni az elemnek egy #access => FALSE) a status elemet. Így a többi, nem a tartalmi űrlapon keresztül megvalósuló mechanizmusba nem kavar be.

0
0
Illyés Edit képe

Én a Workflow modult nézném meg. Van egy nagyon ügyes hozzáférés-szabályozási komponense is.

0
0
pp képe

Az, hogy ha szerkeszti ne legyen közzétéve megoldható rules modullal(vagy talán a core triggerrel is), de ugye Te nem ezt akarod.

A megoldáshoz én egy saját modult írnék. Ebben a hook_node_grands() és hook_node_access_records() kampókat valósítanám meg.

Az elsővel meg tudod mondani, hogy az adott felhasználó az adott szempontból/szerepkörben(realm) mit tehet.
A node_access_records() kampóval pedig meg tudod mondani, hogy egy adott node-hoz milyen szempontok kapcsolódnak.

Két szempontod lesz:
1. sima júzer
2. moderátor

a sima júzernél(1. realm) a gid az a felhasználó azonosító(node_grants) illetve a node szerkesztőjének azonosítója(node_access_records). A node_access_records() kampóban visszaadott grantnál pedig attól függően, hogy milyen állapotban van a node teszed elérhetővé a szerkesztési jogosultságot eme szempont/szerepkör számára(ez minden node változtatásakor frissül)

A moderátornál a gid lényegtelen, legyen mondjuk 1. A node_grants-ban pedig csak akkor adsz vissza ilyen realm-et, ha moderátor az illető. A node_access_records() kampóban meg mindentől függetlenül mindig ugyan azt a jogosultságot adod vissza.

Bevezethetsz a modulodban egy "tartalmak moderálása" jogosultságot és akkor nem kell belehegesztened a modulba a csoport számát, hanem a felhasználók jogosultság oldalon tudod ezt a jogot osztani bármely felhasználónak.

pp

0
0
Illyés Edit képe

  1. Létrehoz egy moderátor csoportot.
  2. Telepíti a Workflow modult, bekapcsolja a Workflow Access komponenst is, felkínált linkre kattintva újraépíti a node access táblát.
  3. Létrehoz egy workflow-t mondjuk munkamenet néven.
  4. Hozzáad két state-et: szerkesztés alatt, közzétett.
  5. Megadja, hogy létrehozás után a node szerkesztés alatt állapotba kerüljön.
  6. Megadja, hogy a szerzők csak szerkesztés alatt állapotú node-okat szerkeszthessenek.
  7. Megadja, hogy szerkesztés alatt állapotból csak a moderátorok tehetnek át node-ot közzétett állapotba (és 6. miatt csak ők vehetnek ki onnan).

Vagy nem erről van szó, nem ez a feladat? Az előbb végigcsináltam, kb. 3 perc volt teszt webhely létrehozásával együtt. Régen használtam a modult és ezért sokat bénáztam, szerintem másodjára már gyorsabban menne. :)

Szerk.: csatoltam a témaindítóhoz egy képernyőképet. A workflow-t tesztworkflow néven hoztam létre, a többi ahogy fent leírtam.

0
0
pp képe

Meg is hajlok előtte.

pp

0
0
Illyés Edit képe

Továbbítom a meghajlást a modulszerzők felé. :)

0
0
eMeLA képe

Igen köszönöm ez telitalálat. Ez kell nekem !
A képes illusztráció pedig rendkívül hatékony volt !

Egy apró megjegyzés: a "közzétételi beállítások"-nél ki volt kapcsolva a "közzétett" opció, így nem úgy működött a workflow ahogy vártam. Csak a bekapcsolása után működött rendesen, vagyis míg a workflow-ban "szerkesztés alatt" volt a node, nem látszott csak a beküldőnek és a moderátornak. "közzétett" után pedig látszódott, de a beküldő már nem tudta szerkeszteni.

0
0

...mit tudok: http://web.termuves.hu

aboros képe

párosítással is meg tudod csinálni, egy rule kell, ami node mentésekor aktiválódik, ha a típus x és a node közzétett, akszió: jogosultságok megváltoztatása, csak admin szerkesztheti. kész.

0
0

-
clear: both;

eMeLA képe

Köszönöm mindenkinek a tippeket, de most a Workflow nyert a saját modullal szemben, mivel pontosan azt teszi ami nekem kellett, kiegészítve azzal, hogy még le is dokumentálja a történéseket...

0
0

...mit tudok: http://web.termuves.hu