Proteger vistas

Cualquier vista invocada directamente desde un URL o que se inicia como una redirección desde otro mandato, necesita una política de control de acceso basada en roles para poder visualizarla.

Por qué y cuándo se efectúa esta tarea

El ejemplo siguiente muestra una política basada en roles para las vistas:


<Policy Name="ProductManagersExecuteProductManagersViews"
        OwnerID="RootOrganization"
        UserGroup="ProductMangers"
        ActionGroupName="ProductMangersViews"
        ResourceGroupName="ViewCommandResourceGroup"
        PolicyType="groupableStandard">
</Policy>            

El nombre del grupo de recursos, ViewCommandResourceGroup, indica que es una política basada en roles para vistas. La política indica que los usuarios del grupo de usuarios ProductManagers pueden visualizar las vistas del grupo de acciones ProductMangersViews. Del mismo modo, para la mayoría de las roles, existe un grupo de acción correspondiente que agrupa las vistas a las que puede acceder el rol, como por ejemplo el rol Seller -> grupo de acceso Sellers -> grupo de acción SellersViews.

A continuación se muestra un ejemplo del grupo de acciones ProductMangersViews:


<ActionGroup Name="ProductManagersViews"
OwnerID="RootOrganization">
        <ActionGroupAction Name="ProductImageView"/>
        <ActionGroupAction Name="ProductManufacturerView"/>
        <ActionGroupAction Name="ProductSalesTaxView"/>
 </ActionGoup>

El ejemplo anterior lista las tres acciones, ProductImageView , ProductManufacturerView y ProductSalesTaxView que se pueden realizar en el grupo de acciones ProductManagerViews.

A continuación se muestra un ejemplo de definición de la acción ProductImageView:


<Action Name="ProductImageView"
CommandName="ProductImageView">
</Action>

El atributo Name, ProductImageView,se utiliza como una etiqueta para hacer referencia a la acción en cualquier lugar del archivo XML como, por ejemplo, cuando se asocia la acción a un grupo de acciones.

Nota: El nombre de la vista, almacenado en el VIEW NAME de los archivos de configuración de Struts, deben coincidir con CommandName en la definición de la acción. El valor de CommandName se almacena en la columna ACTION de la tabla ACACTION. Los atributos Name y CommandName no tienen que ser iguales.