Skip to Content

Com crear un àrea de clients

Em veig amb la necessitat de crear, dins d'una web Drupal, una petita àrea de clients on cada client (després d'iniciar sessió) pugui crear, modificar, esborrar i veure un conjunt de fitxers que haurà creat (és un tipus de contingut específic), però no pot saber res de cap fitxer de cap altre client (imaginem-nos una àrea privada). De la mateixa manera, ha d'existir un rol que pugui crear, modificar i esborrar qualsevol document de qualsevol usuari. Alguna proposta per implementar això? Explico el que he pensat

Havia pensat en crear una taxonomia, clients, i crear un terme per cada client nou. Llavors, el client, al crear un nou document, se li associa directament el terme a aquest document. Així, a l'hora de crear vistes i demés, puc filtrar segons els termes. El superusuari, al crear el document, escull a qui el vol associar. És això una bogeria? Jo crec que sí. Segur que hi ha la possibilitat de fer-ho molt més senzill i no embolicar-me tant. Alguna forma de poder restringir el contingut mostrat en una vista segons qui ha creat el document?

Ramon

Argument: User uid amb valor per defecte?

A una vista li pots afegir un argument "User: uid", i llavors marques "Provide default argument", després a "Default argument type" marques l'opció "PHP Code". Aquí pots assignar el que vulguis, per exemple "all" si l'usuari té un cert permís o rol, o l'uid de l'usuari actual explícitament, si no té permís especial.

Després, per evitar que algú pugui passar-li per URL un uid d'un altre usuari, dins de "Validator options" d'aquest argument, marques l'opció "PHP Code", i dins la caixa de text pots escriure PHP que validi que l'argument és igual al uid de l'usuari actual, o algú que no tingui un cert permís.

Per altra banda, suposo que necessitaràs protegir l'accés als fitxers. Suposo que l'opció de fitxers privats de Drupal hauria de funcionar amb FileField, Imagecache i tota la pesca, encara que no ho he provat.

Contingut sindicat