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/20 10:56] – [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 231: | Line 218: | ||
=== Selezione del documento === | === Selezione del documento === | ||
- | Gli si presenta una pagina con una lista di realm (tutti i realm su cui l' | + | 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. | Ogni realm è affiancato da una freccetta che serve per espandere la sezione. | ||
- | Cliccandoci verranno mostrate sotto al realm tutte le class su cui l' | + | 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' | + | 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 il realm o la class verrà visualizzata la lista di **tutti i documenti** all' |
- | Cliccando su un documento verrà aperta la schermata di tag | + | Cliccando su un documento verrà aperta la schermata di tag. |
- | Da ogni schermata deve essere possibile tornare indietro alla schermata precedente | + | |
+ | Da ogni schermata deve essere possibile | ||
=== Schermata di tag === | === Schermata di tag === | ||
- | Cliccando su un documento si aprirà una schermata divisa in due parti. | + | Cliccando su un documento si aprirà una schermata |
- | Sulla sinistra verrà visualizzata la preview del documento, in cui è possibile scorrere, sfogliare le pagine e fare zoom. | + | 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' | + | Sulla destra ci saranno i **tag**, ovvero dei **campi di input** che devono essere riempiti dall' |
I valori da inserire all' | I valori da inserire all' | ||
Line 256: | Line 244: | ||
Il compito dell' | Il compito dell' | ||
- | Ogni class di documenti prevede uno specifico insieme di tag che devono essere riempiti, quindi l' | + | Ogni class di documenti prevede uno specifico insieme di tag che devono essere riempiti, quindi l' |
=== Validazione === | === Validazione === | ||
- | Ogni tag deve avere delle regole per validare i valori inseriti. | + | Ogni tag deve avere delle regole per **validare** i valori inseriti. |
Ci sono due tipi di regole di validazione: | 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 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 |
- | * 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 " | + | * 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 === | === Automazione === | ||
- | Per semplificare il lavoro dell' | + | Per semplificare il lavoro dell' |
Quando l' | Quando l' | ||
- | Si potrebbe anche implementare un sistema di suggerimenti dei valori dei campi. | + | Si potrebbe anche implementare un sistema di **suggerimenti** dei valori dei campi: |
- | Quando l' | + | Quando l' |
Questi valori potrebbero essere calcolati sulla base dei valori di altri campi o sulla base di valori inseriti in passato. | Questi valori potrebbero essere calcolati sulla base dei valori di altri campi o sulla base di valori inseriti in passato. | ||
- | Esempio: Inserendo nome e cognome il sistema mi suggerisce un codice fiscale che è stato già associato a quel nome e cognome in passato. | + | |
+ | **Esempio**: Inserendo nome e cognome il sistema mi suggerisce un codice fiscale che è stato già associato a quel nome e cognome in passato. | ||
=== Completamento === | === Completamento === | ||
- | Una volta finito di inserire i tag, l' | + | |
+ | Una volta finito di inserire i tag, l' | ||
==== Visualizzazione ==== | ==== Visualizzazione ==== | ||
- | Ogni documento deve poter essere visibile dal proprio owner, dagli utenti appartenenti alle ACL collegate al documento, | + | Ogni documento deve poter essere visibile dal proprio owner e dagli utenti appartenenti ai groups con READ (o ADMIN) |
Quando un utente va nella schermata di visualizzazione, | Quando un utente va nella schermata di visualizzazione, | ||
I documenti devono avere una thumbnail, un nome, un' | 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) | ||
+ | |||
+ | |||
+ |