O sea, que en tu pagina de editar para continuar con el mismo ejemplo comenzaria tu script por buscar el nivel de acceso del usuario.
Un query a tu base de datos y chequeas el valor de la suma total.
resultado: 18.
entonces seguiras en el script de tu pagina por verificar que valor te dio el nivel de acceso?? rectificame si estoy equivocado en mis pasos.
Código PHP:
// Resultado del query. Suponiendo que sea 18
$access=$result['access'];
Aqui es donde tengo la duda. Como chequeo este valor. Como se cuales son los valores que debo restarle (el numero mayor mas cercano)???
Código PHP:
if ($access <= 3)
echo "No tiene permiso de editar";
if ($access <= 7 && $access >= 4){
echo "Si tiene permiso";
if ($access == 8)
echo "No tiene permiso para editar.";
if ($access <= 15 && $access >= 9 ){
$access -= 8;
if ($access >=4){
$access -= 4;
echo "Tiene permiso de editar";
}
else {
echo "No tiene permiso de editar.";
}
}
// Aqui entraria el valor 18.
if ($access <= 31 && $access >= 16){
$access -= 16; // quedaria valor 2.
if ($access >= 8){ // no aplica
$access -= 8;
}
if ($access >= 4){ // no aplica
$access -= 4;
echo "Si tiene permiso para editar.";
}
if ($access <= 3){ // Seria este el resultado.
echo "no tiene permiso para editar.";
}
}
Asi estaria bien hecho o existe otra forma menos complicada ????
Creo que es mucho trabajo para chequear de esta forma.
Que tal si identificas a cada usuario con una letra.
Ejemplo:
View - a
ADD - b
EDIT - c
CREATE - d
ADMIN - e
Base de Datos
user_id | nivel_acceso
-----------------------------
1 | abc
2 | e
3 | bd
y en tu pagina Edit.php para los usuarios que tengan permiso de editar. ("c").
Código PHP:
//query a la DB al user_id 3, result bd
$access = $result['nivel_acceso'];
// Chaquear que tenga acces a editar valor "C"
if(!strstr($access, "c"))
echo "Acceso Denegado, Tu Usuario no tiene permiso para editar."; // Para el Usuario 3.
else
echo "Usuario con permiso para editar.";
No quedaria mas corto y mas simple de chequear de esta forma que de la otra ???
Solo trato de encontrar la forma mas comoda y eficiente.