Tengo una vista para mostrar una lista de elementos. El usuario puede editar, eliminar o crear nuevos elementos, pero de acuerdo con sus autorizaciones, pueden o no tener permiso para realizar algunas de estas acciones.¿Cómo mantener las vistas libres de lógica de autorización en mvc?
que tienen la obligación de mostrar sólo las acciones que se le permite hacer el usuario actual, pero no quiero saturar los puntos de vista con la autorización si-else de
Desdeñe de ser un requisito muy común, lo no puede encontrar una manera realmente satisfactoria de hacerlo.
Mi mejor enfoque hasta ahora es proporcionar una sobrecarga al método de extensión Html.ActionLink
que toma el permiso para solicitar, pero habrá escenarios más complejos, como ocultar bloques enteros de html o cambiar un cuadro de texto por una etiqueta + oculto
¿Hay una mejor manera de hacerlo?
Esta es una mejor manera de hacer lo que Krisg propone en su respuesta, pero sigue siendo a nivel de componente (krisg estaba a nivel de vista). Quizás no estoy lo suficientemente loco como para hacer un componente "RowAction" y llamarlo en cada fila para representar las acciones que el usuario puede hacer, pero es posible que finalmente implemente un enfoque de casilla de verificación con solo una barra de herramientas para actuar sobre los elementos . Me llevó un tiempo, pero lo entendí. Tnks. –