<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="jakarta.faces.html"
                xmlns:ui="jakarta.faces.facelets"
                xmlns:cc="jakarta.faces.composite">

    <!--
        Composant de contrôle d'accès aux pages basé sur les rôles.

        Usage dans une page XHTML :
        <ui:include src="/templates/components/security/page-access-control.xhtml">
            <ui:param name="allowedRoles" value="TRESORIER,ADMIN" />
        </ui:include>

        Paramètres :
        - allowedRoles : Liste des rôles autorisés séparés par des virgules
                         Ex: "ADMIN", "TRESORIER,SECRETAIRE", "ALL" (tous authentifiés)
                         Si non spécifié, tous les utilisateurs authentifiés ont accès
    -->

    <cc:interface>
        <cc:attribute name="allowedRoles" type="java.lang.String" required="false"
                     shortDescription="Rôles autorisés à accéder à cette page (séparés par virgule)" />
    </cc:interface>

    <cc:implementation>
        <!--
            Vérifie l'accès dès le chargement de la page.
            Si l'utilisateur n'a pas les droits, il est redirigé vers access-denied.
        -->
        <ui:fragment rendered="#{not pageSecurityBean.checkAccessOrRedirect(cc.attrs.allowedRoles)}" />
    </cc:implementation>

</ui:composition>
