Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:charta:analisi [2022/07/14 11:11] – [Fase di scan] daniel | projects:charta:analisi [2022/10/28 10:43] (current) – rmontresor | ||
---|---|---|---|
Line 54: | Line 54: | ||
=== Visualizzazione === | === Visualizzazione === | ||
- | Gli utenti possono visualizzare e scaricare i documenti all' | + | Gli utenti possono visualizzare e scaricare i documenti all' |
- | Gli utenti possono vedere solo i documenti su cui hanno accesso di lettura. Se l' | + | Gli utenti possono vedere solo i documenti su cui hanno accesso di lettura. Se l' |
=== Ruoli === | === Ruoli === | ||
- | Ogni operatore appartiene a dei gruppi | + | Ogni operatore appartiene a dei gruppi. Ogni gruppo |
Un operatore quindi potrebbe avere un ruolo in un realm e un ruolo diverso in un altro realm. | Un operatore quindi potrebbe avere un ruolo in un realm e un ruolo diverso in un altro realm. | ||
Ad esempio: un operatore può scannerizzare e taggare documenti per l' | Ad esempio: un operatore può scannerizzare e taggare documenti per l' | ||
- | |||
- | Deve quindi essere possibile fare login, selezionare un realm e poi eventualmente fare lo switch a un differente realm, senza dovere fare login nuovamente. | ||
Line 75: | Line 73: | ||
**PROBLEMA: | **PROBLEMA: | ||
Esistono due tipi di permessi | Esistono due tipi di permessi | ||
- | * Permessi di tipo operativo, che vogliamo associare a cose generali come i realm e le classi | + | * Permessi di tipo operativo, che vogliamo associare a cose generali come i realm e le categorie |
* Permessi di visibilità sui singoli documenti | * Permessi di visibilità sui singoli documenti | ||
- | ==== Soluzione 1 (SCARTATA)==== | ||
- | |||
- | Un utente appartiene a più gruppi | ||
- | |||
- | Un gruppo ha certi permessi di tipo operativo (es. può scannerizzare i file all' | ||
- | e certi permessi di visibilità sui singoli file (es. un operatore vuole che un documento sia visibile da tutti i dipendenti dell' | ||
- | |||
- | **Problema: | ||
- | In base a cosa vengono creati i gruppi? | ||
- | |||
- | In base ai permessi operativi? | ||
- | La maggior parte degli utenti non ha permessi operativi. | ||
- | |||
- | In base ai permessi di visibilità? | ||
- | I permessi di visibilità in genere si danno ai gruppi di lavoro, ad esempio i dipendenti di un settore, o il gruppo dei manager ecc. | ||
- | |||
- | Ma queste divisioni non c' | ||
==== Soluzione 2 ==== | ==== Soluzione 2 ==== | ||
Line 118: | Line 99: | ||
* I **group** vengono associati ai realm e alle classi | * I **group** vengono associati ai realm e alle classi | ||
- | |||
Con i group, oltre ai ruoli di scan, tag, ecc, esiste il ruolo read, che può dare ad alcuni utenti speciali (non solo agli operatori interni) i permessi di lettura a tutti i documenti di un certo realm, o di una certa classe all' | Con i group, oltre ai ruoli di scan, tag, ecc, esiste il ruolo read, che può dare ad alcuni utenti speciali (non solo agli operatori interni) i permessi di lettura a tutti i documenti di un certo realm, o di una certa classe all' | ||
Con le ACL, un operatore che carica un documento può scegliere i permessi di lettura che avrà il singolo documento una volta pubblicato, associandolo a delle liste che non hanno niente a che vedere con le suddivisioni operative o gli utenti speciali | Con le ACL, un operatore che carica un documento può scegliere i permessi di lettura che avrà il singolo documento una volta pubblicato, associandolo a delle liste che non hanno niente a che vedere con le suddivisioni operative o gli utenti speciali | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Soluzione 3 (scelta) ==== | ||
+ | |||
+ | Un utente appartiene a più GROUP | ||
+ | |||
+ | ---- | ||
+ | |||
+ | * Le **categories** vengono associate ai singoli documenti | ||
+ | |||
+ | * I **group** vengono associati ai realm | ||
+ | |||
+ | * Il **role** può essere upload, tag, correct, publish, read, admin (comprende tutti i precedenti ruoli) | ||
+ | |||
+ | * Una tabella **GroupRoleCategory** assegna ad ogni gruppo di utenti dei ruoli su una categoria di documenti (esempio: il ruolo read su tutti i cedolini) | ||
+ | |||
+ | Tutti i documenti hanno una categoria più una chiamata " | ||
+ | |||
+ | Al momento il ruolo admin è riferito solo alla categoria default, che comprende tutti i documenti di quel realm | ||
+ | |||
==== Esempi di permessi ==== | ==== Esempi di permessi ==== | ||
Line 128: | Line 129: | ||
Un documento è leggibile da: | Un documento è leggibile da: | ||
* Utente owner del documento | * Utente owner del documento | ||
- | | + | * Utenti membri di un supergroup con ruolo " |
- | | + | |
Un documento è scannerizzabile da: | Un documento è scannerizzabile da: | ||
- | * Utenti membri di un supergroup con ruolo "scan" | + | * Utenti membri di un supergroup con ruolo "upload" |
- | **Esempi della tabella dei role** | ||
- | |||
- | < | ||
- | Superg | ||
- | s1 SCAN 2 ALL | ||
- | s2 TAG | ||
- | s2 CORRECT 3 | ||
- | s3 ALL | ||
- | s4 READ 2 ALL | ||
- | </ | ||
- | |||
- | nell' | ||
==== Schema del db proposto ==== | ==== Schema del db proposto ==== | ||
- | {{ : | + | {{ : |
Spiegazione: | Spiegazione: | ||
Line 155: | Line 143: | ||
* Un certo numero di **file** | * Un certo numero di **file** | ||
* Un insieme di **tag** a cui vengono attribuiti dei valori | * Un insieme di **tag** a cui vengono attribuiti dei valori | ||
- | * Una **class** (tipologia, ad es. cedolino, contratto, ecc.) | + | * Una **categoria** (tipologia, ad es. cedolino, contratto, ecc.) + la categoria default che comprende tutti i documenti di un realm |
- | >Ogni class di documento ha diversi tag da riempire (es. cedolino chiede il numero fiscale, contratto chiede data di scadenza), essi acquisiranno dei valori solo quando verranno associati a un documento | + | Ogni categoria |
- | >Ogni classe | + | Ogni categoria |
Gli utenti (**user**) appartengono a: | Gli utenti (**user**) appartengono a: | ||
- | * **acl**, che ne determinano | + | * **group**, i quali determinano il ruolo sopra ai realm e sulle categoria |
- | * **group**, che ne determinano il ruolo sopra ai realm e sulle class all' | + | |
I ruoli (**role**) possono essere: | I ruoli (**role**) possono essere: | ||
- | * SCAN, o UPLOAD: l' | + | * SCAN, o UPLOAD: l' |
* TAG: l' | * TAG: l' | ||
* CORRECT: l' | * CORRECT: l' | ||
Line 181: | Line 168: | ||
=== Accesso === | === Accesso === | ||
- | L' | + | L' |
---- | ---- | ||
Line 222: | Line 209: | ||
L' | L' | ||
+ | |||
+ | ==== Fase di tag ==== | ||
+ | |||
+ | === Accesso === | ||
+ | |||
+ | L' | ||
+ | |||
+ | === Selezione del documento === | ||
+ | |||
+ | Gli si presenta una pagina con una **lista di realm** (tutti i realm su cui l' | ||
+ | |||
+ | Ogni realm è affiancato da una freccetta che serve per espandere la sezione. | ||
+ | |||
+ | Cliccandoci verranno mostrate sotto al realm **tutte le class** su cui l' | ||
+ | |||
+ | Ogni realm e ogni class sono affiancati da un numero che indica la **quantità** di documenti ancora da taggare presenti in coda all' | ||
+ | |||
+ | Cliccando il realm o la class verrà visualizzata la lista di **tutti i documenti** all' | ||
+ | |||
+ | Cliccando su un documento verrà aperta la schermata di tag. | ||
+ | |||
+ | Da ogni schermata deve essere possibile **tornare indietro** alla schermata precedente | ||
+ | |||
+ | === Schermata di tag === | ||
+ | |||
+ | Cliccando su un documento si aprirà una schermata **divisa in due parti**. | ||
+ | |||
+ | Sulla sinistra verrà visualizzata la **preview** del documento, in cui è possibile scorrere, sfogliare le pagine e fare zoom. | ||
+ | |||
+ | Sulla destra ci saranno i **tag**, ovvero dei **campi di input** che devono essere riempiti dall' | ||
+ | |||
+ | I valori da inserire all' | ||
+ | |||
+ | Il compito dell' | ||
+ | |||
+ | Ogni class di documenti prevede uno specifico insieme di tag che devono essere riempiti, quindi l' | ||
+ | |||
+ | === Validazione === | ||
+ | |||
+ | Ogni tag deve avere delle regole per **validare** i valori inseriti. | ||
+ | |||
+ | Ci sono due tipi di regole di validazione: | ||
+ | |||
+ | * Regole sul **singolo campo**: il valore del tag deve rispettare un certo formato (si pensi alle targhe, alle mail o ai codici fiscali). Queste regole possono essere implementate come stringhe **regex** salvate nel database, in una colonna apposita nella tabella dei tag. | ||
+ | * Regole che si riferiscono ad **altri campi**: il valore del tag deve essere coerente con il valore dato ad **altri tag**. Ad esempio, la data di scadenza deve essere " | ||
+ | |||
+ | === Automazione === | ||
+ | |||
+ | Per semplificare il lavoro dell' | ||
+ | |||
+ | Quando l' | ||
+ | |||
+ | Si potrebbe anche implementare un sistema di **suggerimenti** dei valori dei campi: | ||
+ | |||
+ | Quando l' | ||
+ | |||
+ | Questi valori potrebbero essere calcolati sulla base dei valori di altri campi o sulla base di valori inseriti in passato. | ||
+ | |||
+ | **Esempio**: | ||
+ | |||
+ | === Completamento === | ||
+ | |||
+ | Una volta finito di inserire i tag, l' | ||
+ | |||
+ | ==== Visualizzazione ==== | ||
+ | |||
+ | Ogni documento deve poter essere visibile dal proprio owner e dagli utenti appartenenti ai groups con READ (o ADMIN) role sul realm e sulla categoria a cui appartiene il documento | ||
+ | |||
+ | Quando un utente va nella schermata di visualizzazione, | ||
+ | |||
+ | I documenti devono avere una thumbnail, un nome, un' | ||
+ | |||
+ | Da questa pagina si potrà selezionare un documento ed entrare nella relativa pagina che permetterà di visualizzare le preview dei file di quel documento, i suoi tag e di poterli scaricare | ||
+ | |||
+ | utente normale che consulta | ||
+ | {{drawio> | ||
+ | |||
+ | utente operatore che inserisce | ||
+ | {{drawio> | ||
+ | |||
+ | |||
+ | ==== Casi particolari (e non) di utenti ==== | ||
+ | * operatori (personale Galileo che scannerizza/ | ||
+ | * su più realm | ||
+ | * più operazioni | ||
+ | * dipendenti serit (vedono solo i loro documenti) | ||
+ | * sindacalista serit (possono uploadare solo un tipo di documento) | ||
+ | * dipendenti serit (vedono solo una classe di documento) | ||
+ | * dirigenti serit (vede tutto nel real serit e __creano nuovi utenti del realm__) | ||
+ | * dirigenti galileo (vedono tutto di tutti i real e honno abilitate tutte le operazioni) | ||
+ | |||