Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Linee Guida] Gestire utenti/amministratori con permessi diversi

    ragazzi quale metodo usate voi per gestire gli utenti registrati del sito?

    Io dovendo gestire un sito nella quale ci sono diversi livelli di registrazione e diversi livelli di azioni che si possono eseguire avevo pensato di far inserire tutti gli utenti registrati in una tabella 'users' che presenta anche il campo 'level' nel quale per esempio viene segnato un numero (0 = utente bannato, 1 = amministratore, 2 = utente semplice registrato)

    e un'array dove salvare per ogni livello esistente le pagine che quel livello può usufruire:

    codice:
    $userPrivileges[0] = array('login.php');
    $userPrivileges[1] = array('login.php','edit.php','insert.php',etc);
    $userPrivileges[2] = array('login.php','view.php',etc);
    ogni pagina carica il livello e controlla se il $_SERVER filename è contenuto nell'array...

    commenti?

  2. #2
    Io uso una tabella utenti ed ad ogni utente è associato un gruppo. I gruppi sono in una tabella ed ad ogni gruppo sono associate le pagine alle quali può accedere.
    Diciamo però che si può anche fare che ogni pagina richieda al caricamento l'appartenenza ad un certo gruppo.
    Insomma un po' in stile permessi linux.
    Coltiva Linux, Windows si pianta da solo!

  3. #3
    La soluzione più efficente è quella delle ACL associate all'utente/gruppo!

    Ovvero hai gli utenti ed hai i gruppi e poi hai una tabella aggiuntiva dove tieni TUTTE le ACL del sistema indicando a che fanno riferimento tramite dei campi: personalmente tengo 3 campi, con su una chiave primaria, ovvero "Type", che fa riferimento alla tipologia ed è un enum, "Id", che fa riferimento all'id, come INT 10 UNSIGNED, ed infine a "Permission", che fa riferimento al permesso, ed è un varchar. A questi campi va aggiunto in realtà un quarto campo, sempre di tipo enum, che indica il tipo di contenuto (principalmente Number, String, Serialized) in modo da permette di gestire automaticamente vari tipi di campi e di controlli sul contenuto.

    In questo modo quando un utente deve accedere ad una pagina provo a cercare la acl chiamata X per l'utente Y che fa parte del tipo Z e vedo istantaneamente chi è e chi non è.

    Se vuoi automatizzare i controlli, nell'array metti il nome del permesso in modo che il sistema effettui autonomamente i controllo necessari con la possibilità, però di fare maggiore distinzione dentro il codice per operazioni particolari e/o speciali!
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4

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 © 2025 vBulletin Solutions, Inc. All rights reserved.