security:
    encoders:
        App\Security\SecurityUser:
            algorithm: bcrypt
        App\Entity\User\User:
            algorithm: bcrypt

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        app:
            id: App\Security\SecurityUserProvider

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/*
            form_login:
                login_path: login
                check_path: login_check
                default_target_path: dashboard
                always_use_default_target_path: true
            logout:
                path: logout
                target: login
            provider: app
            anonymous: ~

    access_control:
        - { path: ^/resetPassword, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/forgotSuccess$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/forgotPassword$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/media/cache/, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, role: ROLE_ADMIN }
        - { path: ^/audit, role: ROLE_SUPER_ADMIN }
        - { path: ^/admin_user, role: ROLE_SUPER_ADMIN }
        - { path: ^/admin_pavilion, role: ROLE_SUPER_ADMIN }
        - { path: ^/, role: IS_AUTHENTICATED_FULLY }
        - { path: ^/media/cache/admin_thumbnail, role: IS_AUTHENTICATED_ANONYMOUSLY }
