Solución WordPress: “You do not have sufficient permissions to…”

Escrito el 25 enero 2011, 06:32am en Wordpress

Tagged with: , ,

Trabajo a diario con WordPress y puedo decir que ya he visto esta clase de mensajes hasta el hastazgo:

  • You do not have sufficient permissions to update plugins for this site.
  • You do not have sufficient permissions to access this page.
  • You do not have sufficient permissions to install themes on this site.

Y seguramente también se encuentren con su versión en español diciéndoles que no tienen permisos para actualizar su blog, plugins o themes.

El porque

Ahora bien, y ¿de donde proviene este error? la respuesta es mas simple de lo que podríamos imaginar. Resulta que al actualizar algunos contenidos de nuestro blog, muchas veces WordPress no llega a completar la generación de los permisos en nuestra base de datos para algunos usuarios y es por eso que en el camino nos deja sin poder actualizar plugins, themes o inclusive el mismísimo blog.

Manos a la obra

Antes de comenzar a meter mano en la base de datos vamos a analizar un poco mas el error, y demás esta decir que ustedes son los únicos responsables por los cambios que realicen en su blog, hagan backup!. En mi ultimo caso me encontré con el mensaje “You do not have sufficient permissions to update plugins for this site“.

Como ya mencione, el problema esta en la base de datos y mas precisamente en la tabla wp_options (El prefijo wp_ puede variar en tu instalación) dentro de la entrada cuyo option_name es igual a wp_user_roles; si vemos su contenido seguramente nos encontraremos con algo como lo siguiente:

A simple vista puede no resultar claro que es toda esa información y cual es su función, ya que la misma se encuentra serializada. Pero con la ayuda de herramientas en linea como la siguiente podrán darse una mejor idea de su contenido:

http://www.functions-online.com/unserialize.html

Una vez deserializada la información, dentro del array capabilities veremos cuales son los permisos con los que cuenta nuestro usuario, y en mi caso al ser un problema de permisos a la hora de actualizar plugins debía buscar una cadena de texto similar a la siguiente:

s:14:”update_plugins”;b:1;

Para que se vayan familiarizando un poco con esto, del texto anterior
podemos descifrar que la clave es un valor string de 14
caracteres (s:14) cuyo nombre es "update_plugins" y el valor
 boolean de la misma es true (b:1).

Como no hallé dicho valor, debí agregar el mismo de forma manual. Para agregar o quitar valores dentro de esta cadena primero debemos mirar al comienzo de la misma, donde dice:

a:5:{s:13:”administrator”;a:2:{s:4:”name”;s:13:”Administrator”;s:12:”capabilities”;a:60:

El último numero indica la cantidad de opciones, por lo que si vamos a agregar una mas deberemos incrementar ese numero en uno, por lo que ahora quedaría en a:61. Una vez realizado ese cambio procederemos a agregar la nueva cadena después de la primer llave luego de a:61. Algo así:

a:5:{s:13:”administrator”;a:2:{s:4:”name”;s:13:”Administrator”;s:12:”capabilities”;a:61:{s:14:”update_plugins”;b:1;

Una vez realizada la modificación ya podremos guardar los cambios y probar nuevamente si nuestra instalación de WordPress nos deja o no actualizar nuestro sistema.

Esta es una solución que me ha resultado siempre, en el caso de deberse a otra limitación de permisos no tienen mas que deserializar la información y ver que es lo que falta en el listado de permisos. Los nombres de las claves son bastante intuitivos por lo que creo que no tendrán mayores problemas en identificarlas.

Comentarios (2)

  1. Gustavo - MGB Hosting Argentina — mayo 4, 2011 a las 5:32 am

    Martin, la verdad veo este problema a diario y me parecio muy simple la manera de explicar que tenes. Ademas aprovecho para felicitarte ya que el blog es excelente y contiene mucha info interesante. Un saludo.

  2. Martín Aberastegue — mayo 12, 2011 a las 3:00 pm

    Muchas gracias por tu comentario Gustavo 🙂

Los comentarios están cerrados para este artículo.