A mi siempre me ha gustado usar algo como un ACL. Por un lado defino los permisos, por otro perfiles y por ultimo asigno a usuarios perfiles.
$perms = array('lectura', 'escritura', 'borrado');
$roles = array('admin', 'anonimo', 'logado');
$roles_perm = array('admin' => array('lectura', 'escritura','borrado'), user => array('lectura'));
$user = array('name' => 'pepito', 'roles' => array('logado','admin'));
global $user,$roles_perm;
function control_access($perm = FALSE) {
global $user,$roles_perm;
$roles = $user['roles'];
foreach ($roles as $key => $value) {
$perms = $roles_perm($value);
if (in_array($perm,$perms)) {
return TRUE;
}
}
return FALSE;
}
...
if (control_access('escritura')) {
....
}
Lo acabo de hacer de cabeza en este momento por lo que no se si funciona el código... pero vamos, es para que pilles la idea de como funcionaria un sistema de acl cutre.