<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <welcome-file-list>
        <welcome-file>dashboard.jsf</welcome-file>
        
    </welcome-file-list>
    <!-- Session Configuration -->
    <session-config>
        <session-timeout>-1</session-timeout>
    </session-config>
    <!--
        Java Server Faces Application Context parameters
    -->
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>serenity-blue</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/primefaces-serenity.taglib.xml</param-value>
    </context-param>
    <!--
        Java Server Faces Application Listeners
    -->
     <listener>
        <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class>
    </listener>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <!--
        Java Server Faces Application Filters
    -->
    <filter>
        <filter-name>Character Encoding Filter</filter-name>
        <filter-class>org.primefaces.serenity.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Character Encoding Filter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    <!--
        Java Server Faces Application Servlets
    -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <!--
        Java Authentication and Authorization Services (JAAS)
    -->
    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/login.jsf</form-login-page>
            <form-error-page>/WEB-INF/error-pages/access.jsf</form-error-page>
        </form-login-config>
    </login-config>
    <!--
        Security Constraints
    -->
    <!-- Menus Dashboard and Top Bar (Profile, Privacy) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a DASHBOARD grant</web-resource-name>
            <url-pattern>/dashboard.jsf</url-pattern>
        </web-resource-collection>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a PROFILE/PRIVACY/SETTINGS grant</web-resource-name>
            <url-pattern>/app/topbar/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>general.access.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Empleado (lista, agregar y actualizar) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a EMPLOYEE ADD grant</web-resource-name>
            <url-pattern>/app/admin/employee/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.employee.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a EMPLOYEE ADD grant</web-resource-name>
            <url-pattern>/app/admin/employee/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.employee.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a EMPLOYEE EDIT grant</web-resource-name>
            <url-pattern>/app/admin/employee/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.employee.update</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a FEE grant</web-resource-name>
            <url-pattern>/app/admin/fee/fee.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.sale.tab.add.sale.fee</role-name>
            <role-name>admin.sale.tab.add.sale.fee.delete</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a FEE BY DRIVER grant</web-resource-name>
            <url-pattern>/app/admin/fee/feeByDriver.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.sale.tab.add.sale.fee</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Cliente (lista, agregar y actualizar) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a CLIENT LIST grant</web-resource-name>
            <url-pattern>/app/admin/client/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.client.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a CLIENT ADD grant</web-resource-name>
            <url-pattern>/app/admin/client/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.client.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a CLIENT UPDATE grant</web-resource-name>
            <url-pattern>/app/admin/client/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.client.update</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Proveedor (lista, agregar y actualizar) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a PROVIDER LIST grant</web-resource-name>
            <url-pattern>/app/admin/provider/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.provider.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a PROVIDER ADD grant</web-resource-name>
            <url-pattern>/app/admin/provider/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.provider.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a PROVIDER UPDATE grant</web-resource-name>
            <url-pattern>/app/admin/provider/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.provider.update</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Taxista (lista, agregar, actualizar, en banca) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a DRIVER LIST grant</web-resource-name>
            <url-pattern>/app/admin/driver/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.driver.active.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a DRIVER ADD grant</web-resource-name>
            <url-pattern>/app/admin/driver/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.driver.active.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a DRIVER UPDATE grant</web-resource-name>
            <url-pattern>/app/admin/driver/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.driver.active.update</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a DRIVER POOL LIST grant</web-resource-name>
            <url-pattern>/app/admin/driver/list_pool.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.driver.on.bench.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Taxi (lista, agregar, actualizar, en banca) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a TAXI LIST grant</web-resource-name>
            <url-pattern>/app/admin/taxi/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.taxi.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a TAXI ADD grant</web-resource-name>
            <url-pattern>/app/admin/taxi/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.taxi.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a TAXI EDIT grant</web-resource-name>
            <url-pattern>/app/admin/taxi/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.taxi.update</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Ventas (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a Sale List grant</web-resource-name>
            <url-pattern>/app/admin/sale/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.sale.tab.add.sale.name</role-name>
            <role-name>admin.sale.tab.driver.name</role-name>
            <role-name>admin.sale.tab.taxi.name</role-name>
            <role-name>admin.sale.tab.general.name</role-name>
            <role-name>admin.sale.tab.external.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Sanciones (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a SANCTION List grant</web-resource-name>
            <url-pattern>/app/admin/sanction/sanction.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.sanction.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu TO COLLECT (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a ADMIN LIST grant</web-resource-name>
            <url-pattern>/app/admin/to-collect/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.to.collect.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja General / Sub menu Entradas (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a payment in, add or delete grants</web-resource-name>
            <url-pattern>/app/admin/generalBox/expenseCompanyIn/payment.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.payment.in.name</role-name>
            <role-name>admin.payment.in.add</role-name>
            <role-name>admin.payment.in.delete</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja General / Sub menu gastos generales (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when logged has a payment in, add or delete grants</web-resource-name>
            <url-pattern>/app/admin/generalBox/expenseCompanyIn/payment.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.payment.out.name</role-name>
            <role-name>admin.payment.out.add</role-name>
            <role-name>admin.payment.out.delete</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja General / Sub menu cuadre de caja (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when User logged has a stable general box list, add or delete grants</web-resource-name>
            <url-pattern>/app/admin/generalBox/stableGeneralBox/home.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.stable.general.box.name</role-name>
            <role-name>admin.stable.general.box.add</role-name>
            <role-name>admin.stable.general.box.delete</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja General / Sub menu cuadre de caja (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when User logged has a stable small box list, add or delete grants</web-resource-name>
            <url-pattern>/app/admin/smallBox/home.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.stable.small.box.name</role-name>
            <role-name>admin.stable.small.box.add</role-name>
            <role-name>admin.stable.small.box.delete</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja chica / Corte / Agregar corte -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when User logged has cash daily cut add grant</web-resource-name>
            <url-pattern>/app/admin/smallBox/dailyCash/add.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.stable.small.box.daily.cash.cut.add</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Menu Administracion / Submenu Caja chica / Corte / Corte historial -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when User logged has cash daily cut historical or delete grants</web-resource-name>
            <url-pattern>/app/admin/smallBox/dailyCash/historical.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin.stable.small.box.daily.cash.cut.name</role-name>
            <role-name>admin.stable.small.box.daily.cash.cut.delete</role-name>
        </auth-constraint>
    </security-constraint>    
    <!-- Catálogo / Marca / Automóvil (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a BRAND CAR grant</web-resource-name>
            <url-pattern>/app/catalog/brand/car/car.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.brand.car.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Marca / Product (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a BRAND PRODUCT grant</web-resource-name>
            <url-pattern>/app/catalog/brand/product/product.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.brand.product.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Color (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a COLOR grant</web-resource-name>
            <url-pattern>/app/catalog/color/color.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.color.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Vehiculo (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a VEHEICLE grant</web-resource-name>
            <url-pattern>/app/catalog/vehicle/vehicle.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.vehicle.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Producto (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a PRODUCT grant</web-resource-name>
            <url-pattern>/app/catalog/product/product.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.product.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Servicio (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SERVICE grant</web-resource-name>
            <url-pattern>/app/catalog/service/service</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.service.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Catálogo / Dias no laborales (lista) -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a HOLIDAY grant</web-resource-name>
            <url-pattern>/app/catalog/holiday/holiday.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>catalog.holiday.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Stocktaking -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Invoice grant</web-resource-name>
            <url-pattern>/app/stocktaking/invoice/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.invoice.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Invoice ADD grant</web-resource-name>
            <url-pattern>/app/stocktaking/invoice/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.invoice.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Invoice UPDATE grant</web-resource-name>
            <url-pattern>/app/stocktaking/invoice/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.invoice.update</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Service Order Management LIST grant</web-resource-name>
            <url-pattern>/app/stocktaking/service/order/management/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.service.order.management.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Service Order Garage LIST grant</web-resource-name>
            <url-pattern>/app/stocktaking/service/order/garage/list.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.service.order.garage.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Service Order Garage ADD grant</web-resource-name>
            <url-pattern>/app/stocktaking/service/order/garage/new.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.service.order.garage.add</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a Service Order Garage UPDATE grant</web-resource-name>
            <url-pattern>/app/stocktaking/service/order/garage/update.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>stocktaking.service.order.garage.update</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- System Create-->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SYSTEM CREATE grant</web-resource-name>
            <url-pattern>/app/system/user/create.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>syste.user.create.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- System Manager -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SYSTEM MANAGER grant</web-resource-name>
            <url-pattern>/app/system/user/manager.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>syste.user.manager.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- System Notification -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SYSTEM NOTIFICATION grant</web-resource-name>
            <url-pattern>/app/system/user/notification.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>syste.user.manager.notification.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- System Properties -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SYSTEM PROPERTIES grant</web-resource-name>
            <url-pattern>/app/system/properties.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>syste.properties.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!-- Report -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a DAILY SALE REPORT grant</web-resource-name>
            <url-pattern>/app/report/sale/daily.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>report.daily.sale.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a SAVING DRIVER REPORT grant</web-resource-name>
            <url-pattern>/app/report/sale/saving.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>report.saving.driver.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a DAILY MONEY REPORT grant</web-resource-name>
            <url-pattern>/app/report/sale/money.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>report.daily.money.name</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Views only available when user has a PAY CUSTOMER REPORT grant</web-resource-name>
            <url-pattern>/app/report/pay/customer/report.jsf</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>report.pay.customer.name</role-name>
        </auth-constraint>
    </security-constraint>
    <!--
        Security Roles
    -->
    <!-- Menus Dashboard and Top Bar (Profile, Privacy) -->
    <security-role>
        <role-name>general.access.name</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Empleado (lista, agregar y actualizar) -->
    <security-role>
        <role-name>admin.employee.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.employee.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.employee.update</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.add.sale.fee</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.add.sale.fee.delete</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Cliente (lista, agregar y actualizar) -->
    <security-role>
        <role-name>admin.client.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.client.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.client.update</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Proveedor (lista, agregar y actualizar) -->
    <security-role>
        <role-name>admin.provider.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.provider.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.provider.update</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Taxista (lista, agregar, actualizar, en banca) -->
    <security-role>
        <role-name>admin.driver.active.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.driver.active.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.driver.active.update</role-name>
    </security-role>
    <security-role>
        <role-name>admin.driver.on.bench.name</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Taxi (lista, agregar, actualizar, en banca) -->
    <security-role>
        <role-name>admin.taxi.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.taxi.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.taxi.update</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Ventas (5 pestanias Ventas, Chofer, Taxi, General, Externo) -->
    <security-role>
        <role-name>admin.sale.tab.add.sale.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.driver.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.taxi.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.general.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.sale.tab.external.name</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Sanciones (lista) -->
    <security-role>
        <role-name>admin.sanction.name</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu TO COLLECT (lista) -->
    <security-role>
        <role-name>admin.to.collect.name</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Caja General / Sub menu Entradas (lista) -->
    <security-role>
        <role-name>admin.payment.in.name</role-name>
    </security-role>    
    <security-role>
        <role-name>admin.payment.in.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.payment.in.delete</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Caja General / Sub menu gastos generales (lista) -->
    <security-role>
        <role-name>admin.payment.out.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.payment.out.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.payment.out.delete</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Caja General / Sub menu cuadre de caja (lista) -->
    <security-role>
        <role-name>admin.stable.general.box.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.general.box.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.general.box.delete</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Caja General / Sub menu cuadre caja chica (lista) -->
    <security-role>
        <role-name>admin.stable.small.box.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.small.box.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.small.box.delete</role-name>
    </security-role>
    <!-- Menu Administracion / Submenu Caja Chica / Corte -->
    <security-role>
        <role-name>admin.stable.small.box.daily.cash.cut.add</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.small.box.daily.cash.cut.name</role-name>
    </security-role>
    <security-role>
        <role-name>admin.stable.small.box.daily.cash.cut.delete</role-name>
    </security-role>
    <!-- Catálogo / Marca / Automóvil (lista) -->
    <security-role>
        <role-name>catalog.brand.car.name</role-name>
    </security-role>
    <!-- Catálogo / Marca / Product (lista) -->
    <security-role>
        <role-name>catalog.brand.product.name</role-name>
    </security-role>
    <!-- Catálogo / Color (lista) -->
    <security-role>
        <role-name>catalog.color.name</role-name>
    </security-role>
    <!-- Catálogo / Vehiculo (lista) -->
    <security-role>
        <role-name>catalog.vehicle.name</role-name>
    </security-role>
    <!-- Catálogo / Producto (lista) -->
    <security-role>
        <role-name>catalog.product.name</role-name>
    </security-role>
    <!-- Catálogo / Servicios (lista) -->
    <security-role>
        <role-name>catalog.service.name</role-name>
    </security-role>
    <!-- Catálogo / Dias no laborales (lista) -->
    <security-role>
        <role-name>catalog.holiday.name</role-name>
    </security-role>
    <!-- STOCKTAKING -->
    <security-role>
        <role-name>stocktaking.invoice.name</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.invoice.add</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.invoice.update</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.service.order.management.name</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.service.order.garage.name</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.service.order.garage.add</role-name>
    </security-role>
    <security-role>
        <role-name>stocktaking.service.order.garage.update</role-name>
    </security-role>
    <!-- Menu System -->
    <security-role>
        <role-name>syste.user.create.name</role-name>
    </security-role>
    <security-role>
        <role-name>syste.user.manager.name</role-name>
    </security-role>
    <security-role>
        <role-name>syste.user.manager.notification.name</role-name>
    </security-role>
    <security-role>
        <role-name>syste.properties.name</role-name>
    </security-role>
    <!-- REPORT -->
    <security-role>
        <role-name>report.daily.sale.name</role-name>
    </security-role>
    <security-role>
        <role-name>report.saving.driver.name</role-name>
    </security-role>
    <security-role>
        <role-name>report.daily.money.name</role-name>
    </security-role>
    <security-role>
        <role-name>report.pay.customer.name</role-name>
    </security-role>
    <!--
        Error Pages
        Code 403 access denied
        code 404 page not found
        code 500 internal server error
    -->
    <error-page>
        <error-code>403</error-code>
        <location>/WEB-INF/error-pages/access.jsf</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/WEB-INF/error-pages/notfound.jsf</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/error-pages/error.jsf</location>
    </error-page>
    <!--   
        Resource reference, is an object factory for resource JDBC DataSource,
    configured into Tomcat. 
    -->
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/carDriverAuth</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
    <!--
        Mime mapping using for show different format of resources like
        fonts, images, icons, thumbnails, etc.
    -->
    <mime-mapping>
        <extension>ttf</extension>
        <mime-type>application/font-sfnt</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>woff</extension>
        <mime-type>application/font-woff</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>png</extension>
        <mime-type>image/png</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>woff2</extension>
        <mime-type>application/font-woff2</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>eot</extension>
        <mime-type>application/vnd.ms-fontobject</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>eot?#iefix</extension>
        <mime-type>application/vnd.ms-fontobject</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exosemibold</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exobolditalic</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exomedium</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exoregular</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#fontawesomeregular</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
</web-app>
