예제 #1
0
 /**
  * @param rest_usuario $usuario
  * @param string       $ruta
  *
  * @return bool
  */
 public function tiene_acceso($usuario, $ruta)
 {
     if (null === $usuario) {
         return false;
     }
     // en el contexto de oauth2 los perfiles son los scopes
     $user_scopes = $usuario->get_perfiles();
     if (empty($user_scopes)) {
         $user_scopes = '';
     }
     // se chequea que todos los scopes requeridos estén en el arreglo de scopes del usuario
     $user_scopes_array = explode(' ', $user_scopes);
     foreach ($this->scopes as $required_scope) {
         if (!in_array($required_scope, $user_scopes_array)) {
             return false;
         }
     }
     return true;
 }