El propòsit d’aquesta funcionalitat és guiar l’usuari pel procés de protecció d’objectes d’un accés no autoritzat, d’acord amb la seva llicència o preferències d’administració. Els primers passos s’expliquen a la Configuració i a l’arxiu legal.json.
En el procés legal, l’usuari haurà de passar per un flux configurat (veure Configuració) que requerirà que les dades condueixin a un color resultant. Aquest color serà utilitzat per a determinar qui pot accedir a l’objecte. Pots assignar autoritzacions d’accés als grups de Plone definint els noms del grup a la variable de Configuració USER_LEVEL.
Exemple
(config.json)
"USER_LEVEL": { "*", "MyUserGroup1", "MyUserGroup2+MyUserGroup3", "MyUserGroup4" }
En aquest exemple, tots els usuaris (especificats amb ‘*’) tenen accés verd. Els usuaris de MyUserGroup1 accés groc. Els usuaris de MyUserGroup2 i MyUserGroup3 accés taronja. I els usuaris de MyUserGroup4 accés vermell. S’entén que qualsevol usuari també pot accedir als objectes de nivells d’autorització (colors) inferiors al del seu grup.
La finalitat de les funcions legals són en definitiva protegir els continguts audiovisuals, per aquest motiu els serveis implicats són aquells que retornen aquest tipus de contingut o la seva URL:
/resource/{identifier}/thumbnail
/resource/{identifier}/view
/resource/{identifier}
/media/{identifier}
Tots ells accepten el paràmetre “uid”. El seu valor ha de ser l’identificador d’usuari, que servirà per identificar el seu grup. Si el nivell d’autorització del grup és igual o superior al de l’objecte al qual es vol accedir es permetrà l’accés als media. Els objectes que no tenen cap color assignat s’entén que són públics, equivalent a “verd”. Si no s’especifica “uid”, el nivell d’accés per defecte és “verd”.
Tots els serveis de modificació de dades:
/resource/{identifier}/upload
/resource/{identifier}/update
/resource/{identifier}/delete
/media/upload
Requereixen que el grup de l’usuari tingui autorització màxima, és a dir “vermell”.
El procés legal és l’execució del flux que resulta en una assignació de color a l’objecte o objectes. Aquest procés s’executa fent crides als serveis REST, que són:
Ruta servei: http://{host:port}/{appname}/legal/start
Mètode HTTP: POST
Retorna: Codi JSON amb un identificador d'usuari temporal
El cos de la crida ha de contenir una llista JSON dels identificadors dels objectes que seran processats.
Ruta servei: http://{host:port}/{appname}/legal/next
Mètode HTTP: POST
Retorna: Codi JSON amb les dades del següent formulari o bé el resultat.
El cos de la crida ha de contenir els valors dels camps del formulari anterior juntament amb l’identificador temporal d’usuari.
Ruta servei: http://{host:port}/{appname}/legal/restore?key=KEY&value=VALUE
Mètode HTTP: GET
Retorna: Codi JSON amb les dades associades a la tupla key-value
Servei de suport que retorna dades relacionadades amb la tupla key-value. El paràmetre key ha de ser especificat al flux legal (legal.json) usant la clàusula “reference”. Aquest servei hauria de cridar-se per darrera (amb AJAX) per emplenar el formulari actual amb les dades corresponents i estalviar temps a l’usuari.