"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

Explicacion general de permisos en tpvfox

La gestión de los permisos es independiente para cada usuario.

En la tabla usuarios tenemos un campo grupo_id que si le ponemos al usuario el valor 9 es como si fuera administrador y tiene todos los permisos.

Aunque los permisos son independiente y se podría quitar o poner permisos distintos a casa usuario.

Lo permisos pueden ser:

  • 1 -> tiene acceso 
  • 0-> no tiene acceso

Los permisos de modulos , vistas o acciones los indicamos en el fichero access.xml de cada modulo pero siempre con jeraquia modulo->vista->accion. Por ejemplo:

  •  mod_clientes -> tiene permiso
  •  vista listado clientes -> tiene un permiso
  •  acciones dentro listado clientes -> tiene otro permiso.

No podemos crear un permiso una accion fuera de una vista.

¿Donde guardamos los permisos de cada usuario ?

 Los permisos de cada usuario los guardamos en tabla permisos

¿ Que son lo permisos del con usuario 0 ?

Son los permisos que tenemos por defecto en los ficheros access.xml de todos los modulos y plugins.

Se utilizan para limpiar permisos y añadir los que faltan a cada usuario, reorganizar permisos.

 

¿ Donde añado un permiso a un modulo ?

Cuando se crea un modulo , en el fichero acces.xml se indica los permisos por defecto del modulo , de sus vistas y sus acciones.

Cuando en produccion añadimos una accion, entonces los permisos tienes que reorganizar permisos, tambien podermo resetear los permisos.

REORGANIZAR LOS PERMISOS.

En menu de sistema puede encontrar la pestaña de reorganizar, ahí tiene una opcion Reorganizar permisos, donde lo que hace es eliminar los permisos usuario 0 y luego los vuelve a crear, a partir ahi comprueba  uno a uno los permisos que tiene de cada usuario, para crear o eliminar, obteniendo limpieza y creación de los nuevos permisos que tuvieran, manteniendo los permisos que tiene en la actualizadad.

RESETEAR LOS PERMISOS

Si queremos resetear los permisos, es decir poner a todos los usuarios los permisos por defecto, eliminamos los registros en la tabla permisos (vaciar registros) y cuando se loguee el usuario ya regenera los permisos por defecto.

La clase de permisos cuando NO encuentra permisos para ese usuario los vuelve a regenerar.

PROBLEMAS CON LOS PERMISOS.

Cuando reseteamos los permisos,el problema es que si tenemos muchos usuarios y con permisos diferentes, luego tenemos que volver poner en cada usuario esos permisos, la solucion a esto sería hacer grupos de permisos. Esto ultimo que pendiente para proximas versiones.

¿ Cuando se cargan los permisos ?

Los permisos se cargan en la session de php, en fichero inicial.php se crea una variable $Clasepermisos, esta variable es objeto de la clases/ClasePermisos.php

¿ Como obtengo el valor del permiso de una accion ?

Pues con el metodo abreviado :

$ClasePermisos->getAccion("descuento_ticket_update")

 Obtienes el valor del permiso, siempre y cuando exista ese permiso en ese modulo y esa vista.

Si quieres obtener un permiso de un modulo o vista distinta a la que tienes, tienes mandar un segundo parametro con array:

array ('modulo' => mod_xxx, 'vista' => 'vista')

Si al intentar obtener permiso de una acción y da un error:

PHP Recoverable fatal error: Object of class ClasePermisos could not be converted to string

Es que esta solicitando un permiso que no existe.