Supponiamo di avere una tabella utenti e in quella tabella utenti ho un role_id.
Nella mia tabella dei ruoli ho:
users
- id
- role_id
roles
- id
- name
roles
id | name
1 | admin
2 | normal
Ora nel codice voglio disabilitare l'accesso alla pagina admin.php. Quindi in cima ho messo
if ($user->role_id != 1){
header('location: forbidden.php');
}
Sembra una cattiva pratica affidarsi a role_id come 1. Penso che sia meglio fare qualcosa del tipo:
if ($user->role_name == 'admin'){ ...
Ora mi affido al testo del ruolo, che non è eccezionale. Quindi ho creato classi const come:
class RoleType{
const ADMIN = "admin";
const NORNAML = "normal";
}
....
if ($user->role_name == RoleType::ADMIN){ ...
Il problema qui è ora se lo cambio nel database Devo cambiare la mia classe RoleType.
Credo che nessuno di questi sia l'ideale.
Qual è il modo migliore per gestirlo?