Creo que lo estás enfocando de una forma errónea.
Lo que estás haciendo es triplicar todo según el tipo de usuarios que hay, y el concepto es que el privilegio del usuario sea simplemente una variable extra.
No sé como es la arquitectura de tu sitio, pero yo haría lo siguiente:
Crearía un nuevo valor asociado a cada usuario
0 = Administrador
1 = Supervisor
2 = Estudiante
y así sucesivamente...
Luego, en cada sección de la web, podrías tratarlo como módulos. Cada módulo tendría su configuración y dentro de esa configuración, un array donde diría que tipo de usuarios podrían cargar ese módulo.
El resultado sería algo así:
Código PHP:
Ver originalif (in_array($user['role'], $privilegiosModulo)) { // si tiene privilegios, cargas el contenido
} else {
// no tiene privilegios
}
Igualmente, no tienes que hacer distintas funciones para hacer logout, ya que el proceso es el mismo independientemente de su role.
Un saludo