
Quote from Palamar on March 9, 2020, 10:02 pmHola gente,
Pregunta, vi que en las demos de neoPhp incluye una con usuario y pass, es entendible a simple vista pero me surgió una de las dudas en el tema variables.
Veo que chequea la variable error para ver si esta o no vacia y si lo esta (no hay error en la comprobación del usuario) pues pasa directamente a la pantalla para editar la tabla.
Note también que el logueo muchas veces queda entre sesiones pese a que la app por defecto coloca el cuadro para colocar usuario y contraseña.
Las preguntas son las siguientes:
- si quisiéramos traer el usuario para mostrarlo, la variable correcta sería la que surge del array? (EJ: [userData('username')]? y así con las demás: username, mail, etc...Sé que se mostraban de otra manera pero de ser el caso no he podido hacer que se muestre.
- Se me ocurre guardar en el almacenamiento local dicha variable y que, por ejemplo, cuando el usuario presione el botón de salir se borre, sino no (que se mantenga registrado), esta bien eso?, o hay otra forma?.
- Existe alguna forma de corroborar si el usuario está o no logueado?, quiero decir, alguna forma que no sea el error cuando se consulta alguna parte de la base de datos con elevación.
Si no me explico lo narro de otra forma, pero me esta costando armar un panel solo para la administración que solo puedan usar algunos usuarios.
Hola gente,
Pregunta, vi que en las demos de neoPhp incluye una con usuario y pass, es entendible a simple vista pero me surgió una de las dudas en el tema variables.
Veo que chequea la variable error para ver si esta o no vacia y si lo esta (no hay error en la comprobación del usuario) pues pasa directamente a la pantalla para editar la tabla.
Note también que el logueo muchas veces queda entre sesiones pese a que la app por defecto coloca el cuadro para colocar usuario y contraseña.
Las preguntas son las siguientes:
Si no me explico lo narro de otra forma, pero me esta costando armar un panel solo para la administración que solo puedan usar algunos usuarios.

Quote from luishp on March 10, 2020, 10:30 am@palamar para utilizar el sistema de gestión de usuarios de neoPHP es importante entender como funcionan las variables de sesión en PHP (es igual en cualquier lenguage de servidor). Al igual que sucede en muchas de las aplicaciones web que a buen seguro utilizas a diario, la sesión de usuario se queda abierta hasta que el usuario decida cerrarla o bien cierre el navegador.
Las variables de sesión se gestionan desde el servidor y no desde el cliente.
neoPHP incluye una funcionalidad básica de gestión de usuarios y sesiones que se utiliza en estos ejemplos incluidos con la aplicación (creo que ahí podrás encontrar todo lo que necesitas):neoTable Database Example:
https://visualneo.com/tutorials/neotabledbMovie Database Example:
https://visualneo.com/tutorials/moviedb
@palamar para utilizar el sistema de gestión de usuarios de neoPHP es importante entender como funcionan las variables de sesión en PHP (es igual en cualquier lenguage de servidor). Al igual que sucede en muchas de las aplicaciones web que a buen seguro utilizas a diario, la sesión de usuario se queda abierta hasta que el usuario decida cerrarla o bien cierre el navegador.
Las variables de sesión se gestionan desde el servidor y no desde el cliente.
neoPHP incluye una funcionalidad básica de gestión de usuarios y sesiones que se utiliza en estos ejemplos incluidos con la aplicación (creo que ahí podrás encontrar todo lo que necesitas):
neoTable Database Example:
https://visualneo.com/tutorials/neotabledb
Movie Database Example:
https://visualneo.com/tutorials/moviedb

Quote from luishp on March 10, 2020, 10:35 amSi no me explico lo narro de otra forma, pero me esta costando armar un panel solo para la administración que solo puedan usar algunos usuarios.
Yo suelo montar el panel de administración en otra app independiente que habitualmente alojo en una carpeta distinta o en un subdominio. Por ejemplo la App aprendiendo.top tiene el panel de administración aquí:
https://www.aprendiendo.top/admin/Saludos.
Si no me explico lo narro de otra forma, pero me esta costando armar un panel solo para la administración que solo puedan usar algunos usuarios.
Yo suelo montar el panel de administración en otra app independiente que habitualmente alojo en una carpeta distinta o en un subdominio. Por ejemplo la App aprendiendo.top tiene el panel de administración aquí:
https://www.aprendiendo.top/admin/
Saludos.

Quote from Palamar on March 10, 2020, 12:32 pmEntiendo, he armado el panel en otra parte también, aunque considero que es una cuestión organizativa más que funcional. A lo que voy es puntualmente a esta pregunta, a ver si me explico mejor con una situación:
Existe alguna forma de corroborar si el usuario está o no logueado?
El usuario entra a la plataforma, de forma predeterminada algunos objetos de la App están invisibles y mientras no entre con sus credenciales así será. El problema es cuando sale o entra de la pagina, muchas veces los elementos quedan visibles pese a que el usuario no esta logueado. No sé porque sucede pero debería de corroborar al inicio de la app si el user esta o no con sus credenciales.
Otra situación es qué mostrar según el privilegio (entiendo que no podrá hacer las consultas en la BDD si no tiene privilegios), estaría bien poder saber el nivel del usuario actual todo el tiempo debido a que, según entiendo, las variables de sesión tienen caducidad. Entonces si el user tiene nivel 3 que se habilite el botón 1 y 2, si el user tiene nivel 2 que se habilite el botón 3 y 2. Me explico?.
Entiendo, he armado el panel en otra parte también, aunque considero que es una cuestión organizativa más que funcional. A lo que voy es puntualmente a esta pregunta, a ver si me explico mejor con una situación:
Existe alguna forma de corroborar si el usuario está o no logueado?
El usuario entra a la plataforma, de forma predeterminada algunos objetos de la App están invisibles y mientras no entre con sus credenciales así será. El problema es cuando sale o entra de la pagina, muchas veces los elementos quedan visibles pese a que el usuario no esta logueado. No sé porque sucede pero debería de corroborar al inicio de la app si el user esta o no con sus credenciales.
Otra situación es qué mostrar según el privilegio (entiendo que no podrá hacer las consultas en la BDD si no tiene privilegios), estaría bien poder saber el nivel del usuario actual todo el tiempo debido a que, según entiendo, las variables de sesión tienen caducidad. Entonces si el user tiene nivel 3 que se habilite el botón 1 y 2, si el user tiene nivel 2 que se habilite el botón 3 y 2. Me explico?.

Quote from luishp on March 10, 2020, 1:02 pmVamos a ver si consigo explicarme:
- Se inicia la App y determinadas variables no tienen valor o uno inicial
SetVar [NombreUsuario] "" SetVar [NivelUsuario] -1- El usuario se loguea y desde el servidor se devuelve a la aplicación el valor de [NombreUsuario] y [NivelUsuario]
- Esas variables vuelven a resetearse cuando el usuario hace logout.
Fíjate que los valores de las variables en el cliente no son seguras a la hora de determinar si está logueado o no en el servidor. Por eso en el servidor, todas las funciones de neoPHP de acceso a archivos y base de datos comprueban primero si el usuairo está logueado con variables de sesión del servidor (puedes consultar como lo hace en el código de neofunctions.php)
Vamos a ver si consigo explicarme:
SetVar [NombreUsuario] "" SetVar [NivelUsuario] -1
Fíjate que los valores de las variables en el cliente no son seguras a la hora de determinar si está logueado o no en el servidor. Por eso en el servidor, todas las funciones de neoPHP de acceso a archivos y base de datos comprueban primero si el usuairo está logueado con variables de sesión del servidor (puedes consultar como lo hace en el código de neofunctions.php)

Quote from Palamar on March 10, 2020, 2:45 pmEntiendo bien lo que se hace del lado del cliente y lado del servidor.
Bien, entonces una comprobación posible para ciertas actividades como habilitar o deshabilitar cosas (más allá de que si están habilitadas puedan o no hacerse por privilegios departe del servidor) sería comprobar por ejemplo la variable [NivelUsuario]....para que nos entendamos, esa variable, una vez logueados y hasta que el usuario cierre sesión o se cierre el navegador ¿Es posible leerla?.
Lo que necesito es habilitar botones por ejemplo según privilegio por lo que quiero que el server me informe dicho privilegio y no logro hacerlo ni siquiera con las variables que mencionas. Sé que si los botones están igual no funcionarán si la consulta tiene un privilegio distinto al usuario actual, pero por eso quiero que dichos botones ni siquiera se muestren.
Entiendo bien lo que se hace del lado del cliente y lado del servidor.
Bien, entonces una comprobación posible para ciertas actividades como habilitar o deshabilitar cosas (más allá de que si están habilitadas puedan o no hacerse por privilegios departe del servidor) sería comprobar por ejemplo la variable [NivelUsuario]....para que nos entendamos, esa variable, una vez logueados y hasta que el usuario cierre sesión o se cierre el navegador ¿Es posible leerla?.
Lo que necesito es habilitar botones por ejemplo según privilegio por lo que quiero que el server me informe dicho privilegio y no logro hacerlo ni siquiera con las variables que mencionas. Sé que si los botones están igual no funcionarán si la consulta tiene un privilegio distinto al usuario actual, pero por eso quiero que dichos botones ni siquiera se muestren.

Quote from luishp on March 10, 2020, 3:15 pm@palamar, no entiendo muy bien cual es el problema que tienes. Si utilizas neoPhpUserLogin te devolverá un objeto JSON con el id, nombre de usuario, email y nivel de acceso. En función de ese nivel de acceso ocultas los botones o les mandas a otra página.
@palamar, no entiendo muy bien cual es el problema que tienes. Si utilizas neoPhpUserLogin te devolverá un objeto JSON con el id, nombre de usuario, email y nivel de acceso. En función de ese nivel de acceso ocultas los botones o les mandas a otra página.

Quote from Palamar on March 10, 2020, 5:46 pmBien, ahí vamos encaminados, veo que funciona [ParsedVariable('error')] pero [ParsedVariable('username')] no devuelve nada, sé que para mostrar Arrays en el front se hace de otra manera, se aplica a los Json?, de igual manera la variable con username intento procesarla justo después de la de error pero no funciona, no hay nada ahí (aunque el usuario sí entra).
Perdón por tanto lio, espero le sirva a alguien.
Bien, ahí vamos encaminados, veo que funciona [ParsedVariable('error')] pero [ParsedVariable('username')] no devuelve nada, sé que para mostrar Arrays en el front se hace de otra manera, se aplica a los Json?, de igual manera la variable con username intento procesarla justo después de la de error pero no funciona, no hay nada ahí (aunque el usuario sí entra).
Perdón por tanto lio, espero le sirva a alguien.

Quote from Palamar on March 12, 2020, 4:31 pmBien, creo que lo he resuelto aunque no me queda del todo claro como terminan actuando estas variables o porque lo hacen de esta forma.
Si intento mostrar [ParsedVariable('username')] pues no hay resultados, pero si la paso con setvar a otra variable pues sí que puedo verla, pero claro, tengo que chequear en muchas partes del programa si esta variable cambia. He utilizado la acción Watch para solventarlo, pero repito, no me queda del todo claro.
Bien, eso. Un saludo!.
Bien, creo que lo he resuelto aunque no me queda del todo claro como terminan actuando estas variables o porque lo hacen de esta forma.
Si intento mostrar [ParsedVariable('username')] pues no hay resultados, pero si la paso con setvar a otra variable pues sí que puedo verla, pero claro, tengo que chequear en muchas partes del programa si esta variable cambia. He utilizado la acción Watch para solventarlo, pero repito, no me queda del todo claro.
Bien, eso. Un saludo!.

Quote from luishp on March 12, 2020, 5:12 pm@palamar, por favor echa un vistazo detenidamente aquí:
https://webhelp.visualneo.com/VariableObjects.htmlUtiliza [ParsedVariable.username] en lugar de [ParsedVariable('username')]
Saludos!
@palamar, por favor echa un vistazo detenidamente aquí:
https://webhelp.visualneo.com/VariableObjects.html
Utiliza [ParsedVariable.username] en lugar de [ParsedVariable('username')]
Saludos!

Quote from Palamar on March 12, 2020, 5:25 pmHe pedido disculpas ya?, pues si no lo he hecho por favor aceptarlas! ajjajaja. Eso que me leo la ayuda, pero me he saltado esa parte y soy un desastre con los Arrays y Json. Estaré haciendo uso de esto y por supuesto veré de hacer tutorias :). Gracias!
He pedido disculpas ya?, pues si no lo he hecho por favor aceptarlas! ajjajaja. Eso que me leo la ayuda, pero me he saltado esa parte y soy un desastre con los Arrays y Json. Estaré haciendo uso de esto y por supuesto veré de hacer tutorias :). Gracias!