Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    Gestione permission: come fareste voi?

    Ciao a tutti!
    Immaginate di avere 4 tabelle con relazione uno a molti ad es:

    Tabella1 -> Tabella2 -> Tabella3 -> Tabella4

    e di avere una TabellaUtenti.

    Se voleste poter assegnare, per ciascun utente, le permission per -non vedere- -vedere- -modificare- i record di ciascuna delle tabelle precedenti, come strutturereste il DB?

  2. #2
    probabilmente lo farei inserendo un field permission alla tabella utenti che
    appunto indica quale tabella e quale permission, una volta aggiunto questo si puo
    tranquillamente gestire gli accessi, in base a dette permission, dalle pagine.
    Che ne dici?
    "Perche al Cavaliere Nero non gli dovete cagare il cazzo."
    Blog
    Like pizza?
    Get Pizza!

  3. #3
    Utente di HTML.it L'avatar di ettore8
    Registrato dal
    Jul 2004
    Messaggi
    334
    ho appena fatto una cosa simile..
    la mia situazione era questa:

    Tabella Utenti: UID, nome, cognome....
    Tabella Sezioni: SID, sezione ...
    Tabella auth: SID, UID, permesso

    In pratica le Sezioni sono le varie parti che compongono un sito; nella tabella auth, scrivo per l'utente X e la sezione Y se ha permessi di lettura (permesso=R), scrittura (permesso=W) o nessuno (permesso=X).

  4. #4
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    xSFG: Eh, non va bene, perchè ogni utente può avere un livello diverso di permission per ogni tabella (più di una).
    Inoltre le tabelle numerate sono in relazione tra loro, e le tabelle figlie devono ereditare le permission da quelle padri...

    xettore: chiaro, ma se tu avessi non solo la tabella Sezioni, ma anche le tabelle SottoSezioni e SottoSottoSezioni in relazione tra loro, come faresti?

  5. #5
    Utente di HTML.it L'avatar di ettore8
    Registrato dal
    Jul 2004
    Messaggi
    334
    Originariamente inviato da longline

    xettore: chiaro, ma se tu avessi non solo la tabella Sezioni, ma anche le tabelle SottoSezioni e SottoSottoSezioni in relazione tra loro, come faresti?
    Spiegami bene come devo essere i permessi ...

    in pratica

    l'utente pippo può modificare/leggere il record 5 della tabella1, il record 10 della tabella2 ? una cosa del genere oppure l'utente pippo può modificare il record 5 della tabella 1 e tutti i record associati nelle tabelle 2, 3 e 4 ?

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da ettore8
    [...]oppure l'utente pippo può modificare il record 5 della tabella 1 e tutti i record associati nelle tabelle 2, 3 e 4 ?
    Esatto, in cascata.
    Allo stesso tempo, però, se un utente crea un record (associato ad esempio al record 5), in una delle tabelle, e lo marca come "privato", questo record e i suoi associati nelle tabelle figlie diventano invisibili anche a chi aveva le permission per vedere il record 5 della tabella 1 ed associati.

  7. #7
    Utente di HTML.it L'avatar di ettore8
    Registrato dal
    Jul 2004
    Messaggi
    334
    Originariamente inviato da longline
    Esatto, in cascata.
    Allo stesso tempo, però, se un utente crea un record (associato ad esempio al record 5), in una delle tabelle, e lo marca come "privato", questo record e i suoi associati nelle tabelle figlie diventano invisibili anche a chi aveva le permission per vedere il record 5 della tabella 1 ed associati.
    Come prima cosa mi viene in mente ...

    Dai il permesso (con il metodo che ho descritto prima) sulla tabella "madre" (la prima nella serie) e quando un utente deve interagire con dei record "figli" vai a controllare se ha i permessi di R-W sulla tabella madre ...

    per il discorso di contrassegnare un record come privato ... se io decido che il record X è privato, può essere privato solo per alcuni utenti o se è privato lo è per tutti e deve essere visualzzato solo da chi lo ha creato ?

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da ettore8
    Come prima cosa mi viene in mente ...

    Dai il permesso (con il metodo che ho descritto prima) sulla tabella "madre" (la prima nella serie) e quando un utente deve interagire con dei record "figli" vai a controllare se ha i permessi di R-W sulla tabella madre ...

    per il discorso di contrassegnare un record come privato ... se io decido che il record X è privato, può essere privato solo per alcuni utenti o se è privato lo è per tutti e deve essere visualzzato solo da chi lo ha creato ?
    Quello che pensavo è che se un record (e i record associati nelle tabelle figlie) viene reso privato, innanzitutto è visibile solo a chi lo ha creato, poi chi lo ha creato può renderlo visibile agli utenti che vuole lui.

    Aggiungo che il record che viene marcato come privato potrebbe essere un record della Tabella3 o della Tabella4...

  9. #9
    Utente di HTML.it L'avatar di ettore8
    Registrato dal
    Jul 2004
    Messaggi
    334
    mi sto perdendo ...

    comunque una tabella con:

    TABELLA (tabella1, tabella2, ...)
    RECORDID
    USERID
    PERMESSO


    così facendo puoi definire per ogni record di ogni tabella e per ogni utente i permessi

    ma è un inizio ...davvero, mi sono perso

    EDIT:
    quando viene inserito un nuovo record però, dovresti scrivere i permessi per tutti ...

  10. #10
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Facciamo un esempio pratico

    Le tabelle sono:

    Frutteti > Alberi > Rami > Frutti

    Le relazioni sono evidenti

    Innanzitutto per ciascun utente vengono definite le permission per entrare/non entrare/modificare ogni Frutteto, e fin qui è facile, i record accessibili agli utenti dipendono dai Frutteti accessibili.

    La difficoltà ulteriore sta nel fatto che un utente può decidere di creare un Albero, o un Ramo, o un Frutto che, nonostante le permission del Frutteto, è visibile/invisibile/modificabile solo agli utenti che decide lui (si presuppone che comunque possa scegliere tra coloro che comunque avevano accesso al Frutteto in cui è stato creato il nuovo record privato).

    È più chiaro così?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.