extension( 'security', [ 'password_hashers' => [ Contact::class => ['algorithm' => 'auto'] ], 'role_hierarchy' => [ 'ROLE_SHOP' => 'ROLE_USER', 'ROLE_PRODUCT_EDITOR' => ['ROLE_SHOP'], 'ROLE_SHOP_OPERATOR' => [ 'ROLE_SHOP', 'ROLE_PRODUCTION', 'ROLE_PRODUCT_EDITOR' ], 'ROLE_SHOP_ADMIN' => [ 'ROLE_SHOP', 'ROLE_SHOP_OPERATOR' ], 'ROLE_ADMIN' => [ 'ROLE_SHOP', 'ROLE_SHOP_OPERATOR', 'ROLE_SHOP_ADMIN' ], 'ROLE_WAREHOUSE' => [ 'ROLE_USER', 'ROLE_ADMIN' ], 'ROLE_PRODUCTION' => [ 'ROLE_USER', 'ROLE_ADMIN', 'ROLE_WAREHOUSE' ], 'ROLE_SUPER_SHOP' => [ 'ROLE_USER', 'ROLE_SHOP', 'ROLE_ADMIN', 'ROLE_PRODUCTION', 'ROLE_WAREHOUSE' ], 'ROLE_SUPER_ADMIN' => [ 'ROLE_USER', 'ROLE_SHOP', 'ROLE_ADMIN', 'ROLE_WAREHOUSE', 'ROLE_PRODUCTION', 'ROLE_SUPER_SHOP', 'ROLE_ALLOWED_TO_SWITCH' ], 'ROLE_API' => [ 'ROLE_SHOP' ] ], 'providers' => [ //'database' => ['entity' => ['class' => Contact::class]], 'user_provider' => ['id' => UserProvider::class ], 'shop_provider' => ['id' => ShopProvider::class ], 'instance_provider' => ['id' => InstanceProvider::class ], 'all' => [ 'chain' => [ 'providers' => ['user_provider', 'shop_provider', 'instance_provider'] ] ] // 'database_token' => ['entity' => ['class' => Shop::class]], // 'database_api_key' => ['entity' => ['class' => Instance::class]], ], 'firewalls' => [ 'admin_secured_area' => [ 'pattern' => '^/backend', 'provider' => 'user_provider', 'form_login' => [ 'check_path' => 'psc_backend_login', 'login_path' => 'psc_backend_login', 'enable_csrf' => true, 'default_target_path' => 'psc_backend_dashboard_index', 'username_parameter' => 'username', 'password_parameter' => 'password' ], 'logout' => [ 'path' => 'psc_backend_logout', 'target' => 'psc_backend_login' ] ], 'api_login' => [ 'pattern' => '/api/login', 'stateless' => false, 'provider' => 'all', 'json_login' => [ 'check_path' => '/api/login_check', 'success_handler' => 'lexik_jwt_authentication.handler.authentication_success', 'failure_handler' => 'lexik_jwt_authentication.handler.authentication_failure' ] ], 'api' => [ 'pattern' => '^/api', 'stateless' => false, 'provider' => 'all', 'jwt' => null, 'access_token' => [ 'token_handler' => ApiKeyHandler::class, 'token_extractors' => ApiKeyExtractor::class ], 'custom_authenticators' => [ ApiKeyAuthenticator::class, ZendAuthenticator::class, ] ], 'storefront' => [ 'pattern' => '^/', 'provider' => 'user_provider', 'stateless' => false, 'jwt' => null, 'custom_authenticators' => [ ApiKeyAuthenticator::class, ZendAuthenticator::class, ] ] ], 'access_control' => [ [ 'path' => '^/production', 'roles' => 'ROLE_SHOP' ], [ 'path' => '^/backend/login', 'roles' => 'PUBLIC_ACCESS' ], [ 'path' => '^/backend/order/detail/package/printpartner', 'roles' => 'PUBLIC_ACCESS' ], [ 'path' => '^/backend/order/detail/package/download', 'roles' => 'PUBLIC_ACCESS' ], [ 'path' => '^/backend', 'roles' => 'ROLE_SHOP' ], [ 'path' => '^/', 'roles' => 'PUBLIC_ACCESS' ] ] ] ); };