[Php-avanzado] Log usuarios

Ariel Fernández arielf05 en gmail.com
Dom Feb 2 23:32:02 ART 2014


Sí, comprendo, serían muchas actividades así por tabla.
Entonces, voy a estudiar bien tu opción, para sólo registrar procesos
relevantes como ABM de entidades, modificación de precios, y esas cosas.

Y con lo otro, ok, no mostrar botones a los que el usuario no tiene acceso.


Gracias Leo.
Saludos!




El 2 de febrero de 2014, 15:21, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:

> Hola Ariel,
>
>         no, no es generar un log cada vez que se modifica una tabla.
>         Me estás enumerando una docena de actividades.
>         Si tu software tiene, por ejemplo, solo 10 tablas, registrar cada
> INSERT, UPDATE y DELETE, son 3 actividades por tabla, lo que da 30 tipos
> de registros diferentes (10 *3 = 30).
>         Esto es casi tres veces más esfuerzo que registrar solo la docena
> de
> eventos interesantes!
>
>         Acá, al menos las veces que hubo que ponerle logs a los sistemas,
> siempre lo más viable fue hacer como te sugerí en el mail anterior. Una
> aplicación típica acá tiene al menos 30 tablas; el enfoque de todo da 90
> logs diferentes, pero, a quién le importa registrar si aparece un tipo
> de documento nuevo o una localidad nueva? En la práctica, lo útil es
> mucho menos.
>
>         El enlace no me parece útil para tu caso. Registrar a nivel de
> operación SQL es útil solo para poder hacer rollback de operaciones (o
> ir hacia adelante y hacia atrás en el estado del sistema), pero no te da
> ningún dato relevante si no sabés leer SQL.
>
>         Respecto a los menús, siempre es buena idea no mostrar lo que no se
> puede hacer. Generalmente no es tan trivial como poner a la vista o no
> un menú, ya que una UI decente te permitirá hacer ABM en la misma
> pantalla, con lo que el acceso a dicha pantalla tiene que aparecer si
> está permitida una de las 3 operaciones, pero si por ejemplo no se puede
> agregar, el botón de insertar no aparecerá.
>
>
> El dom, 02-02-2014 a las 03:40 -0200, Ariel Fernández escribió:
> > Hola Leo !!!
> >
> >
> >
> > Sí, tu orientación está buena, con algo así podría sacar un listado de
> > todas las operaciones que se realizaron sobre una entidad y así saber
> > en qué momento sucedió determinada cosa y quién fue el ejecutor de la
> > cosa.
> >
> >
> > Y a lo que me refería es a poder guardar cada operación que realiza un
> > usuario en el sistema. El sistema sería una aplicación web para unos
> > pocos usuarios.
> > Te pongo varios ejemplos para explicarme mejor:
> > Necesitaría que el sistema guarde en una tabla, cuando un usuario....:
> > _da de alta una entidad (por entidad entiéndase
> > paciente/cliente/proveedor, etc)
> > _da de baja una entidad
> > _modifica una entidad
> > _realiza una factura o nota de crédito o de débito
> > _imputa un pago
> > _genera un recibo de pago
> > _genera un ajuste de stock
> > _carga una observación en una factura
> >
> > _carga mercadería al stock
> > _genera una lista de precios
> > _modifica un precio
> > _etc etc etc
> >
> >
> > en definitiva, sería registrar cada operación que se realiza con cada
> > tabla, no es así? es decir, cada vez que se produce un UPDATE o un
> > INSERT o un DELETE en alguna tabla, que el sistema guarde qué usuario
> > lo realizó, la fecha y la hora.
> >
> >
> >
> >
> > espero que se entienda mejor, no es que necesite todo lo de los
> > ejemplos, pero para que te des una mejor idea de lo que pretendía.
> >
> >
> > No he encontrado mucha información al respecto, sólo un artículo que
> > habla de "bitácora" acá:
> > http://tavoberry.com/blog/crear-una-bitacora-en-mysql/
> >
> >
> > Creés que eso que explican ahí puede llegar a ser útil ?
> >
> >
> >
> >
> > Por otra parte, lo de la autentificación con sesiones, para terminar
> > de entenderla, lo implementé en el sistemita del jardín, y logré
> > comprender el proceso aún más.
> > También me gustaría generar menúes condicionales según el nivel de
> > acceso que tenga el usuario que se loguea. No sé, por ejemplo,
> > Administrador, Operador Avanzado, Operador Básico....algo así. Para
> > que, por poner algún ejemplo, sólo el administrador pueda modificar
> > precios, o un operador básico sólo pueda sacar listados y facturar, y
> > uno avanzado pueda hacer cŕeditos y dar de baja clientes...etc
> > Algo así estimo que se implementaría con menúes condicionales, qué te
> > parece?
> >
> >
> >
> >
> >
> >
> >
> >
> > El 1 de febrero de 2014, 11:14, Leonardo Tadei - Pegasus Tech Supply
> > <leonardot en pegasusnet.com.ar> escribió:
> >         Hola Ariel,
> >
> >                 querés registrar "procesos realizados", pero no sé a
> >         qué te referís
> >         exactamente con esto.
> >
> >                 A nivel de almacenamiento, lo mejor es tener una tabla
> >         con la acción o
> >         proceso (id, nombre) y otra que sea el registro de actividades
> >         (id,
> >         id_proceso, timestamp, nombre de usuario). No es complicado
> >         agregarle IP
> >         de conexión si el dato vale la pena.
> >
> >                 Esto después te permite filtrar fácilmente por proceso
> >         para buscar algo
> >         específico.
> >
> >                 Para la implementación, te hacés una función "log",
> >         que podría ponerse
> >         en un include_once() en el script que hace la autentificación,
> >         que si
> >         está bien hecha, estará al principio de todos los scripts del
> >         sistema,
> >         con lo que la tenés disponible en todas partes.
> >
> >                 Para usarla, en la parte del código que realiza cada
> >         proceso, la
> >         invocás:
> >
> >         log($proceso, $usuario);
> >
> >                 Lo demás no hace falta porque está disponible desde
> >         cualquier contexto
> >         y será parte de la implementación de log()
> >
> >                 Hay veces en los que además de esto, vale la pena
> >         registrar un texto
> >         para dar detalles del proceso.
> >
> >                 Hay veces en las que tenés que registrar referencias a
> >         cosas del
> >         sistema, como Productos o Clientes. En este caso vale la pena
> >         agregar
> >         los ID de estas cosas y sus nombres, para poder filtrar por un
> >         cliente o
> >         por un producto específico y ver que le pasó.
> >
> >                 Espero haberte orientado.
> >
> >
> >         El vie, 31-01-2014 a las 14:07 -0200, Ariel Fernández
> >         escribió:
> >         > Hola gente, como andan?
> >         >
> >         > Una consulta para Leo si anda por ahí...
> >         > Quería saber como implementar un log o registro de
> >         actividades de
> >         > usuarios. Es decir, una aplicación es utilizada por varios
> >         usuarios, y
> >         > quisiera que quede registrado en algún lado, fecha, hora,
> >         procesos
> >         > realizados, etc etc. Cómo se puede implementar algo así de
> >         una manera
> >         > conveniente ?
> >         >
> >         > Desde ya, gracias.
> >         >
> >         > Saludos!
> >
> >
> >
> >         --
> >         Leonardo Tadei
> >         leonardot en pegasusnet.com.ar
> >         Web: http://leonardo.tadei.com.ar
> >         Firma pública:
> >         http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> >
> >         _______________________________________________
> >         Lista de correo: Php-avanzado
> >         Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> >         Administración Web:
> >         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> >         Desubscripción:
> >         php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
> >
> >
> > _______________________________________________
> > Lista de correo: Php-avanzado
> > Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> > Administración Web:
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > Desubscripción:
> php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
>
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Web: http://leonardo.tadei.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Lista de correo: Php-avanzado
> Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> Administración Web:
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> Desubscripción:
> php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20140203/0b7dc19f/attachment-0001.html>


Más información sobre la lista de distribución Php-avanzado