Saltar al contenido

Leer un error de permisos

El mensaje dice más de lo que parece. Qué informa cada parte, las cinco causas ordenadas por frecuencia, y el procedimiento de dos minutos que las descarta todas.

El mensaje

Tiene una forma reconocible y tres partes útiles:

TXT
dialog.open not allowed. Permissions associated with this command: dialog:allow-open
  • La operación que se intentó, con su plugin delante. Dice qué comando concreto se rechazó.
  • La palabra clave: no está permitido. No es que no exista —eso sería otro error, el del nivel 14.2— sino que existe y está cerrado.
  • Y los permisos que lo cubrirían. Ésta es la parte que la gente no lee, y es literalmente la respuesta: el mensaje dice qué identificador hay que conceder.

Leer el mensaje entero resuelve la mayoría de los casos. El resto son los cuatro siguientes.

Las cinco causas

El procedimiento

Dos comandos y una mirada:

Shell
# 1 · qué permisos existen para eso, y cuál es el más estrecho que sirvecd src-tauri && cargo tauri permission ls | grep dialog# 2 · qué tienes concedido hoycat src-tauri/capabilities/*.json | grep dialog

Y la mirada: el campo de ventanas de la capability donde esté. Con esas tres cosas, las cinco causas quedan descartadas.

El primer comando merece insistencia porque es el que evita conceder de más: cuando el mensaje dice que falta un permiso, la tentación es añadir el conjunto por defecto del plugin. El listado enseña que casi siempre hay uno más fino que también sirve.

Permiso que falta frente a ámbito que no cubre

La distinción que el paso 4 necesita, porque los dos mensajes se parecen:

Y el error que no es de permisos

Un aviso para no perder tiempo: si el mensaje dice que el comando no se encuentra, no es de permisos. Es el nivel 14.2 y se arregla en otro sitio. Los dos ocurren antes de que tu código se ejecute y en tramos distintos del recorrido —el permiso en el 4, el nombre en el 5— así que el de permisos ocurre antes y lo tapa: si faltan las dos cosas, el que ves es el de permisos.

Eso significa que arreglar el permiso puede destapar un segundo error. No es que hayas roto algo: es que había dos.