Yo hice un sistema de permisos para
aquí que era a base de roles, grupos y tipos de usuario. Cada rol tenía asignados unos permisos e hice una función para comprobar si el usuario que accedía a cierto sitio cumplía con su permiso.
Es un poco largo, si eso te pongo un cacho de código