forked from wallabag/wallabag
Move to Symfony Flex
The structure changed completely. Bundles are gone. Everything is flatten in the folder `src`. I separated import & api controllers to avoid _pollution_ in the main controller folder.
This commit is contained in:
4
config/packages/bazinga_hateoas.yaml
Normal file
4
config/packages/bazinga_hateoas.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
# For full configuration see https://github.com/willdurand/BazingaHateoasBundle/blob/master/Resources/doc/index.md#reference-configuration
|
||||
bazinga_hateoas:
|
||||
twig_extension:
|
||||
enabled: true
|
||||
19
config/packages/cache.yaml
Normal file
19
config/packages/cache.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
framework:
|
||||
cache:
|
||||
# Unique name of your app: used to compute stable namespaces for cache keys.
|
||||
#prefix_seed: your_vendor_name/app_name
|
||||
|
||||
# The "app" cache stores to the filesystem by default.
|
||||
# The data in this cache should persist between deploys.
|
||||
# Other options include:
|
||||
|
||||
# Redis
|
||||
#app: cache.adapter.redis
|
||||
#default_redis_provider: redis://localhost
|
||||
|
||||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
||||
#app: cache.adapter.apcu
|
||||
|
||||
# Namespaced pools use the above "app" backend by default
|
||||
#pools:
|
||||
#my.dedicated.cache: null
|
||||
3
config/packages/craue_config.yaml
Normal file
3
config/packages/craue_config.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
# define custom entity so we can override length attribute to fix utf8mb4 issue
|
||||
craue_config:
|
||||
entity_name: App\Entity\InternalSetting
|
||||
9
config/packages/dev/framework.yaml
Normal file
9
config/packages/dev/framework.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: true
|
||||
profiler:
|
||||
only_exceptions: false
|
||||
|
||||
mailer:
|
||||
# see https://mailcatcher.me/
|
||||
dsn: smtp://127.0.0.1:1025
|
||||
7
config/packages/dev/jsm_serializer.yaml
Normal file
7
config/packages/dev/jsm_serializer.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
jms_serializer:
|
||||
visitors:
|
||||
json_serialization:
|
||||
options:
|
||||
- JSON_PRETTY_PRINT
|
||||
- JSON_UNESCAPED_SLASHES
|
||||
- JSON_PRESERVE_ZERO_FRACTION
|
||||
19
config/packages/dev/monolog.yaml
Normal file
19
config/packages/dev/monolog.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
channels: ["!event"]
|
||||
# uncomment to get logging in your browser
|
||||
# you may have to allow bigger header sizes in your Web server configuration
|
||||
#firephp:
|
||||
# type: firephp
|
||||
# level: info
|
||||
#chromephp:
|
||||
# type: chromephp
|
||||
# level: info
|
||||
console:
|
||||
type: console
|
||||
process_psr_3_messages: false
|
||||
channels: ["!event", "!doctrine", "!console"]
|
||||
3
config/packages/dev/web_profiler.yaml
Normal file
3
config/packages/dev/web_profiler.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
32
config/packages/doctrine.yaml
Normal file
32
config/packages/doctrine.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
url: '%env(resolve:DATABASE_URL)%'
|
||||
|
||||
orm:
|
||||
auto_generate_proxy_classes: "%kernel.debug%"
|
||||
auto_mapping: true
|
||||
mappings:
|
||||
App:
|
||||
is_bundle: false
|
||||
type: annotation
|
||||
dir: '%kernel.project_dir%/src/Entity'
|
||||
prefix: 'App\Entity'
|
||||
alias: App
|
||||
|
||||
# doctrine:
|
||||
# dbal:
|
||||
# url: '%env(resolve:DATABASE_URL)%'
|
||||
|
||||
# # IMPORTANT: You MUST configure your server version,
|
||||
# # either here or in the DATABASE_URL env var (see .env file)
|
||||
# #server_version: '14'
|
||||
# orm:
|
||||
# auto_generate_proxy_classes: true
|
||||
# naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
||||
# auto_mapping: true
|
||||
# mappings:
|
||||
# App:
|
||||
# is_bundle: false
|
||||
# dir: '%kernel.project_dir%/src/Entity'
|
||||
# prefix: 'App\Entity'
|
||||
# alias: App
|
||||
12
config/packages/doctrine_migrations.yaml
Normal file
12
config/packages/doctrine_migrations.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
doctrine_migrations:
|
||||
migrations_paths:
|
||||
# namespace is arbitrary but should be different from App\Migrations
|
||||
# as migrations classes should NOT be autoloaded
|
||||
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
||||
enable_profiler: false
|
||||
storage:
|
||||
table_storage:
|
||||
table_name: 'migration_versions'
|
||||
version_column_name: 'version'
|
||||
version_column_length: 192
|
||||
executed_at_column_name: 'executed_at'
|
||||
13
config/packages/fos_js_routing.yaml
Normal file
13
config/packages/fos_js_routing.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
fos_js_routing:
|
||||
routes_to_expose:
|
||||
- homepage
|
||||
- starred
|
||||
- archive
|
||||
- all
|
||||
- tag
|
||||
- config
|
||||
- import
|
||||
- developer
|
||||
- howto
|
||||
- fos_user_security_logout
|
||||
- new
|
||||
12
config/packages/fos_oauth_server.yaml
Normal file
12
config/packages/fos_oauth_server.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
# Read the documentation: https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md#step-5-configure-fosoauthserverbundle
|
||||
fos_oauth_server:
|
||||
db_driver: orm
|
||||
client_class: App\Entity\Client
|
||||
access_token_class: App\Entity\AccessToken
|
||||
refresh_token_class: App\Entity\RefreshToken
|
||||
auth_code_class: App\Entity\AuthCode
|
||||
service:
|
||||
user_provider: fos_user.user_provider.username_email
|
||||
options:
|
||||
refresh_token_lifetime: "%env(FOS_OAUTH_SERVER_REFRESH_TOKEN_LIFETIME)%"
|
||||
access_token_lifetime: "%env(FOS_OAUTH_SERVER_ACCESS_TOKEN_LIFETIME)%"
|
||||
34
config/packages/fos_rest.yaml
Normal file
34
config/packages/fos_rest.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
fos_rest:
|
||||
param_fetcher_listener: true
|
||||
body_listener: true
|
||||
view:
|
||||
mime_types:
|
||||
csv:
|
||||
- 'text/csv'
|
||||
- 'text/plain'
|
||||
pdf:
|
||||
- 'application/pdf'
|
||||
epub:
|
||||
- 'application/epub+zip'
|
||||
mobi:
|
||||
- 'application/x-mobipocket-ebook'
|
||||
view_response_listener: 'force'
|
||||
formats:
|
||||
xml: true
|
||||
json: true
|
||||
txt: true
|
||||
csv: true
|
||||
pdf: true
|
||||
epub: true
|
||||
mobi: true
|
||||
failed_validation: HTTP_BAD_REQUEST
|
||||
routing_loader: false
|
||||
format_listener:
|
||||
enabled: true
|
||||
rules:
|
||||
- { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
# for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
|
||||
# so we need to add custom rule for custom api export but also for all other routes of the application...
|
||||
- { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
|
||||
12
config/packages/fos_user.yaml
Normal file
12
config/packages/fos_user.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
fos_user:
|
||||
db_driver: orm
|
||||
firewall_name: secured_area
|
||||
user_class: App\Entity\User
|
||||
registration:
|
||||
confirmation:
|
||||
enabled: '%env(bool:FOSUSER_CONFIRMATION)%'
|
||||
from_email:
|
||||
address: '%env(FROM_EMAIL)%'
|
||||
sender_name: wallabag
|
||||
service:
|
||||
mailer: App\Mailer\UserMailer
|
||||
24
config/packages/framework.yaml
Normal file
24
config/packages/framework.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
# see https://symfony.com/doc/current/reference/configuration/framework.html
|
||||
framework:
|
||||
translator:
|
||||
enabled: true
|
||||
fallback: "%env(LOCALE)%"
|
||||
default_path: '%kernel.project_dir%/translations'
|
||||
secret: '%env(APP_SECRET)%'
|
||||
router:
|
||||
strict_requirements: ~
|
||||
form: ~
|
||||
csrf_protection: ~
|
||||
validation:
|
||||
enable_annotations: true
|
||||
templating:
|
||||
engines: ['twig']
|
||||
default_locale: "%env(LOCALE)%"
|
||||
trusted_hosts: ~
|
||||
session:
|
||||
# handler_id set to null will use default session handler from php.ini
|
||||
handler_id: session.handler.native_file
|
||||
save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%"
|
||||
fragments: ~
|
||||
http_method_override: true
|
||||
assets: ~
|
||||
10
config/packages/http_discovery.yaml
Normal file
10
config/packages/http_discovery.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
services:
|
||||
Psr\Http\Message\RequestFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\ResponseFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\ServerRequestFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\StreamFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\UploadedFileFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\UriFactoryInterface: '@http_discovery.psr17_factory'
|
||||
|
||||
http_discovery.psr17_factory:
|
||||
class: Http\Discovery\Psr17Factory
|
||||
21
config/packages/httplug.yaml
Normal file
21
config/packages/httplug.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
httplug:
|
||||
clients:
|
||||
wallabag_core:
|
||||
factory: App\Helper\HttpClientFactory
|
||||
config:
|
||||
defaults:
|
||||
timeout: 10
|
||||
plugins: ['httplug.plugin.logger']
|
||||
wallabag_core.entry.download_images:
|
||||
factory: 'httplug.factory.auto'
|
||||
plugins: ['httplug.plugin.logger']
|
||||
wallabag_import.pocket.client:
|
||||
factory: 'httplug.factory.auto'
|
||||
plugins:
|
||||
- 'httplug.plugin.logger'
|
||||
- header_defaults:
|
||||
headers:
|
||||
'content-type': 'application/json'
|
||||
'X-Accept': 'application/json'
|
||||
discovery:
|
||||
client: false
|
||||
9
config/packages/jms_serializer.yaml
Normal file
9
config/packages/jms_serializer.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
jms_serializer:
|
||||
handlers:
|
||||
# to be removed if we switch to (default) ISO8601 datetime instead of ATOM
|
||||
# see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
|
||||
datetime:
|
||||
default_format: "Y-m-d\\TH:i:sO" # ATOMjms_serializer:
|
||||
visitors:
|
||||
xml_serialization:
|
||||
format_output: '%kernel.debug%'
|
||||
3
config/packages/kphoen_rulerz.yaml
Normal file
3
config/packages/kphoen_rulerz.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
kphoen_rulerz:
|
||||
targets:
|
||||
doctrine: true
|
||||
3
config/packages/mailer.yaml
Normal file
3
config/packages/mailer.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
framework:
|
||||
mailer:
|
||||
dsn: '%env(MAILER_DSN)%'
|
||||
3
config/packages/monolog.yaml
Normal file
3
config/packages/monolog.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
monolog:
|
||||
channels:
|
||||
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
|
||||
17
config/packages/nelmio_api_doc.yaml
Normal file
17
config/packages/nelmio_api_doc.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
nelmio_api_doc:
|
||||
areas: # to filter documented areas
|
||||
path_patterns:
|
||||
- ^/api(?!/doc$) # Accepts routes under /api except /api/doc
|
||||
documentation:
|
||||
info:
|
||||
title: wallabag API documentation
|
||||
description: This is the API documentation of wallabag
|
||||
version: 2.x
|
||||
securityDefinitions:
|
||||
Bearer:
|
||||
type: apiKey
|
||||
description: 'Value: Bearer {jwt}'
|
||||
name: Authorization
|
||||
in: header
|
||||
security:
|
||||
- Bearer: []
|
||||
28
config/packages/nelmio_cors.yaml
Normal file
28
config/packages/nelmio_cors.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
nelmio_cors:
|
||||
defaults:
|
||||
allow_credentials: false
|
||||
allow_origin: []
|
||||
allow_headers: []
|
||||
allow_methods: []
|
||||
expose_headers: []
|
||||
max_age: 0
|
||||
hosts: []
|
||||
#origin_regex: false
|
||||
paths:
|
||||
'^/api/':
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
|
||||
max_age: 3600
|
||||
'^/oauth/':
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
||||
max_age: 3600
|
||||
'^/':
|
||||
#origin_regex: true
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
||||
max_age: 3600
|
||||
hosts: ['^api\.']
|
||||
148
config/packages/old_sound_rabbit_mq.yaml
Normal file
148
config/packages/old_sound_rabbit_mq.yaml
Normal file
@ -0,0 +1,148 @@
|
||||
old_sound_rabbit_mq:
|
||||
connections:
|
||||
default:
|
||||
url: '%env(RABBITMQ_URL)%'
|
||||
vhost: /
|
||||
lazy: true
|
||||
producers:
|
||||
import_pocket:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
type: topic
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
import_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
import_delicious:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
type: topic
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
type: topic
|
||||
import_wallabag_v1:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
type: topic
|
||||
import_wallabag_v2:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
type: topic
|
||||
import_elcurator:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
type: topic
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
type: topic
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
consumers:
|
||||
import_pocket:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
callback: wallabag_import.consumer.amqp.pocket
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.readability'
|
||||
callback: wallabag_import.consumer.amqp.readability
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
callback: wallabag_import.consumer.amqp.instapaper
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
callback: wallabag_import.consumer.amqp.pinboard
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_delicious:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
callback: wallabag_import.consumer.amqp.delicious
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_wallabag_v1:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v1
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_wallabag_v2:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v2
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_elcurator:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
callback: wallabag_import.consumer.amqp.elcurator
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
callback: wallabag_import.consumer.amqp.firefox
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
callback: wallabag_import.consumer.amqp.chrome
|
||||
qos_options: {prefetch_count: 10}
|
||||
18
config/packages/prod/doctrine.yaml
Normal file
18
config/packages/prod/doctrine.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
doctrine:
|
||||
orm:
|
||||
auto_generate_proxy_classes: false
|
||||
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
|
||||
query_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.system_cache_pool
|
||||
result_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.result_cache_pool
|
||||
|
||||
framework:
|
||||
cache:
|
||||
pools:
|
||||
doctrine.result_cache_pool:
|
||||
adapter: cache.app
|
||||
doctrine.system_cache_pool:
|
||||
adapter: cache.system
|
||||
6
config/packages/prod/jsm_serializer.yaml
Normal file
6
config/packages/prod/jsm_serializer.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
jms_serializer:
|
||||
visitors:
|
||||
json_serialization:
|
||||
options:
|
||||
- JSON_UNESCAPED_SLASHES
|
||||
- JSON_PRESERVE_ZERO_FRACTION
|
||||
21
config/packages/prod/monolog.yaml
Normal file
21
config/packages/prod/monolog.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
excluded_http_codes: [404, 405]
|
||||
buffer_size: 50 # How many messages should be saved? Prevent memory leaks
|
||||
nested:
|
||||
type: stream
|
||||
path: php://stderr
|
||||
level: debug
|
||||
formatter: monolog.formatter.json
|
||||
console:
|
||||
type: console
|
||||
process_psr_3_messages: false
|
||||
channels: ["!event", "!doctrine"]
|
||||
deprecation:
|
||||
type: stream
|
||||
channels: [deprecation]
|
||||
path: php://stderr
|
||||
3
config/packages/prod/routing.yaml
Normal file
3
config/packages/prod/routing.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: null
|
||||
22
config/packages/prod/sentry.yaml
Normal file
22
config/packages/prod/sentry.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
sentry:
|
||||
dsn: '%env(SENTRY_DSN)%'
|
||||
options:
|
||||
excluded_exceptions:
|
||||
- Symfony\Component\HttpKernel\Exception\NotFoundHttpException
|
||||
- Symfony\Component\Security\Core\Exception\AccessDeniedException
|
||||
|
||||
# If you are using Monolog, you also need these additional configuration and services to log the errors correctly:
|
||||
# https://docs.sentry.io/platforms/php/guides/symfony/#monolog-integration
|
||||
# register_error_listener: false
|
||||
|
||||
# monolog:
|
||||
# handlers:
|
||||
# sentry:
|
||||
# type: service
|
||||
# id: Sentry\Monolog\Handler
|
||||
|
||||
# services:
|
||||
# Sentry\Monolog\Handler:
|
||||
# arguments:
|
||||
# $hub: '@Sentry\State\HubInterface'
|
||||
# $level: !php/const Monolog\Logger::ERROR
|
||||
7
config/packages/routing.yaml
Normal file
7
config/packages/routing.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
framework:
|
||||
router:
|
||||
utf8: true
|
||||
|
||||
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
|
||||
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
|
||||
#default_uri: http://localhost
|
||||
28
config/packages/scheb_2fa.yaml
Normal file
28
config/packages/scheb_2fa.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
# See the configuration reference at https://symfony.com/bundles/SchebTwoFactorBundle/5.x/configuration.html
|
||||
scheb_two_factor:
|
||||
# security_tokens:
|
||||
# - Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken
|
||||
# If you're using guard-based authentication, you have to use this one:
|
||||
# - Symfony\Component\Security\Guard\Token\PostAuthenticationGuardToken
|
||||
# If you're using authenticator-based security (introduced in Symfony 5.1), you have to use this one:
|
||||
# - Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken
|
||||
|
||||
trusted_device:
|
||||
enabled: true
|
||||
cookie_name: wllbg_trusted_computer
|
||||
lifetime: 2592000
|
||||
|
||||
backup_codes:
|
||||
enabled: "%env(TWOFACTOR_AUTH)%"
|
||||
|
||||
google:
|
||||
enabled: "%env(TWOFACTOR_AUTH)%"
|
||||
issuer: "%env(SERVER_NAME)%"
|
||||
template: "Authentication/form.html.twig"
|
||||
|
||||
email:
|
||||
enabled: "%env(TWOFACTOR_AUTH)%"
|
||||
sender_email: "%env(TWOFACTOR_SENDER)%"
|
||||
digits: 6
|
||||
template: "Authentication/form.html.twig"
|
||||
mailer: App\Mailer\AuthCodeMailer
|
||||
81
config/packages/security.yaml
Normal file
81
config/packages/security.yaml
Normal file
@ -0,0 +1,81 @@
|
||||
security:
|
||||
encoders:
|
||||
FOS\UserBundle\Model\UserInterface: sha512
|
||||
|
||||
role_hierarchy:
|
||||
ROLE_ADMIN: ROLE_USER
|
||||
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
|
||||
|
||||
providers:
|
||||
administrators:
|
||||
entity:
|
||||
class: 'App\Entity\User'
|
||||
property: username
|
||||
fos_userbundle:
|
||||
id: fos_user.user_provider.username_email
|
||||
|
||||
# the main part of the security, where you can set up firewalls
|
||||
# for specific sections of your app
|
||||
firewalls:
|
||||
# disables authentication for assets and the profiler, adapt it according to your needs
|
||||
dev:
|
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
||||
security: false
|
||||
|
||||
oauth_token:
|
||||
pattern: ^/oauth/v2/token
|
||||
security: false
|
||||
|
||||
api:
|
||||
pattern: /api/.*
|
||||
fos_oauth: true
|
||||
stateless: true
|
||||
anonymous: true
|
||||
provider: fos_userbundle
|
||||
|
||||
login_firewall:
|
||||
pattern: ^/login$
|
||||
anonymous: ~
|
||||
|
||||
secured_area:
|
||||
pattern: ^/
|
||||
form_login:
|
||||
provider: fos_userbundle
|
||||
csrf_token_generator: security.csrf.token_manager
|
||||
|
||||
anonymous: true
|
||||
remember_me:
|
||||
secret: "%env(APP_SECRET)%"
|
||||
lifetime: 31536000
|
||||
path: /
|
||||
domain: ~
|
||||
|
||||
logout:
|
||||
path: /logout
|
||||
target: /
|
||||
|
||||
two_factor:
|
||||
provider: fos_userbundle
|
||||
auth_form_path: 2fa_login
|
||||
check_path: 2fa_login_check
|
||||
|
||||
access_control:
|
||||
- { path: ^/api/(doc|version|info|user), roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
# force role for logout otherwise when 2fa enable, you won't be able to logout
|
||||
# https://github.com/scheb/two-factor-bundle/issues/168#issuecomment-430822478
|
||||
- { path: ^/logout, roles: [IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_2FA_IN_PROGRESS] }
|
||||
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: /(unread|starred|archive|annotated|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/locale, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/feed, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: /(unread|starred|archive|annotated).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } # For backwards compatibility
|
||||
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
|
||||
- { path: ^/annotations, roles: ROLE_USER }
|
||||
- { path: ^/2fa, role: IS_AUTHENTICATED_2FA_IN_PROGRESS }
|
||||
- { path: ^/users, roles: ROLE_SUPER_ADMIN }
|
||||
- { path: ^/ignore-origin-instance-rules, roles: ROLE_SUPER_ADMIN }
|
||||
- { path: ^/, roles: ROLE_USER }
|
||||
4
config/packages/sensio_framework_extra.yaml
Normal file
4
config/packages/sensio_framework_extra.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
# see https://github.com/symfony/symfony-standard/pull/1133
|
||||
sensio_framework_extra:
|
||||
router:
|
||||
annotations: false
|
||||
9
config/packages/stof_doctrine_extensions.yaml
Normal file
9
config/packages/stof_doctrine_extensions.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
# Read the documentation: https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html
|
||||
# See the official DoctrineExtensions documentation for more details: https://github.com/doctrine-extensions/DoctrineExtensions/tree/main/doc
|
||||
stof_doctrine_extensions:
|
||||
default_locale: "%env(LOCALE)%"
|
||||
translation_fallback: true
|
||||
orm:
|
||||
default:
|
||||
tree: true
|
||||
sluggable: true
|
||||
4
config/packages/test/dama_doctrine_test_bundle.yaml
Normal file
4
config/packages/test/dama_doctrine_test_bundle.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
dama_doctrine_test:
|
||||
enable_static_connection: true
|
||||
enable_static_meta_data_cache: true
|
||||
enable_static_query_cache: true
|
||||
8
config/packages/test/doctrine.yaml
Normal file
8
config/packages/test/doctrine.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
doctrine:
|
||||
orm:
|
||||
metadata_cache_driver:
|
||||
type: service
|
||||
id: filesystem_cache
|
||||
query_cache_driver:
|
||||
type: service
|
||||
id: filesystem_cache
|
||||
10
config/packages/test/framework.yaml
Normal file
10
config/packages/test/framework.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
framework:
|
||||
test: ~
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
profiler:
|
||||
collect: false
|
||||
translator:
|
||||
enabled: false
|
||||
mailer:
|
||||
dsn: 'null://null'
|
||||
12
config/packages/test/monolog.yaml
Normal file
12
config/packages/test/monolog.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
excluded_http_codes: [404, 405]
|
||||
channels: ["!event"]
|
||||
nested:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
2
config/packages/test/twig.yaml
Normal file
2
config/packages/test/twig.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
twig:
|
||||
strict_variables: true
|
||||
3
config/packages/test/validator.yaml
Normal file
3
config/packages/test/validator.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
framework:
|
||||
validation:
|
||||
not_compromised_password: false
|
||||
6
config/packages/test/web_profiler.yaml
Normal file
6
config/packages/test/web_profiler.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
framework:
|
||||
profiler: { collect: false }
|
||||
6
config/packages/translation.yaml
Normal file
6
config/packages/translation.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
framework:
|
||||
default_locale: en
|
||||
translator:
|
||||
default_path: '%kernel.project_dir%/translations'
|
||||
fallbacks:
|
||||
- en
|
||||
14
config/packages/twig.yaml
Normal file
14
config/packages/twig.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
# twig:
|
||||
# default_path: '%kernel.project_dir%/templates'
|
||||
# debug: '%kernel.debug%'
|
||||
# strict_variables: '%kernel.debug%'
|
||||
# exception_controller: null
|
||||
|
||||
twig:
|
||||
debug: "%kernel.debug%"
|
||||
strict_variables: "%kernel.debug%"
|
||||
form_themes:
|
||||
- "@LexikFormFilter/Form/form_div_layout.html.twig"
|
||||
exception_controller: App\Controller\ExceptionController:showAction
|
||||
globals:
|
||||
registration_enabled: '%env(bool:FOSUSER_REGISTRATION)%'
|
||||
8
config/packages/validator.yaml
Normal file
8
config/packages/validator.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
framework:
|
||||
validation:
|
||||
email_validation_mode: html5
|
||||
|
||||
# Enables validator auto-mapping support.
|
||||
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
|
||||
#auto_mapping:
|
||||
# App\Entity\: []
|
||||
Reference in New Issue
Block a user