with style modify estilos estilo con colocar javascript permissions

style - Propagar permisos a Javascript



javascript getelementbyid style (4)

Estoy debatiendo la mejor manera de propagar permisos bastante complejos desde el servidor a una aplicación AJAX, y no estoy seguro de cuál es el mejor enfoque a seguir.

Esencialmente, quiero que se definan mis permisos para poder solicitar un conjunto completo de permisos en una sola toma, y ​​ajustar la UI según corresponda (los cambios de la UI pueden ser tan bajos como la desactivación de ciertos elementos del menú contextual). Por supuesto, todavía necesito hacer cumplir el lado del servidor de permisos.

Entonces, me preguntaba si alguien tiene alguna sugerencia sobre la mejor manera de

  1. mantener los permisos y usarlos en el código del servidor
  2. tener fácil acceso a los permisos en javascript
  3. no tiene que hacer una solicitud de ida y vuelta al servidor para cada permiso individual

¿Pensamientos?


Codifíquelos como JSON .


No necesariamente lo veo como la solución más "correcta", pero ¿sería posible mantener todos los permisos en el lado del servidor y solo servir la UI actualizada en lugar de algún tipo de sistema de permisos JSON?

Tendría que tomar una decisión basada en cuán ocupada e intensa su aplicación espera ser, pero definitivamente una decisión que vale la pena hacer de cualquier manera


Si tiene un conjunto claro de permisos, como un "nivel de usuario" o un "tipo de usuario", puede simplemente pasar el valor hacia abajo en un campo oculto y acceder al valor a través del DOM. Todavía podría hacer esto si sus permisos fueran más granulares, pero tendría muchos campos ocultos o tendría que codificar la información en XML o JSON o en algún otro formato.

Puede establecerlos como indicadores de bits para que pueda O un único valor numérico con una máscara para ver si el usuario tiene el permiso para una actividad específica. Eso sería muy flexible y siempre que no tenga más de 32 o más "derechos" específicos, eso permitiría cualquier permutación de esos derechos en un paquete muy pequeño (básicamente, un int sin firmar).

Por ejemplo:

0x00000001 //edit permission 0x00000002 //create new thing permission 0x00000004 //delete things permission 0x00000008 //view hidden things permission . . . 0x80000000 //total control of the server and everyone logged in

Entonces, un usuario con un permiso de 0x000007 podría editar, crear y eliminar, pero nada más.

En cualquier caso, creo que está en el camino correcto: haga la solicitud una vez por invocación de página, almacene los permisos en una estructura de datos global de JavaScript y proceda de allí. AJAX es agradable, pero no desea consultar el servidor para cada permiso específico en toda su página. Lo haría una vez en la carga de la página, configurando la presentación de su página y guardando el valor en una variable global, luego referencia los permisos localmente para las funciones del evento.


Si transmite la estructura de permisos al cliente como un objeto JSON (o XML, si lo prefiere), puede manipular ese objeto con el código del lado del cliente y enviarlo de vuelta al servidor, que puede hacer lo que sea necesario para validar los datos y persisten.