Puede haber dos tipos de condicionales de seguridad, uno en el modelo y otro en la vista. La vista controla la visualización de elementos relevantes según los permisos del usuario actual, pero el modelo controla el acceso a los datos subyacentes. Mientras el modelo tenga todas las verificaciones / validaciones correctas, incluso si falta la vista, todavía hay seguridad.
Por lo general, debe tener ambos, ya que la vista debe cambiar para diferentes niveles / roles. El controlador envía los datos relevantes que cambiarían la vista, pero la vista aún necesita hacer algo con esos datos para ocultar / mostrar el contenido al usuario correcto.
Es por eso que la mayoría de los frameworks de plantillas tienen elementos condicionales ( ejemplo de Handlebars ):
{{#if isCurrentUserAdmin}}
....
{{/if}
Eso significa que no es una violación, siempre y cuando las piezas apropiadas estén en el lugar correcto.