Files
Daniel Subiabre García 0007c6b9b1 chore: sync main to core develop (#1)
* fix: upgrade goteo/benzina to 0.6

* feat: increase Nominatim cache TTL

* fix: allow long addresses for territory data

* fix: build project addresses from goteo 3 territory fields

* fix: handle empty strings for video sources

* fix: update project drafts deadline to 2026

* feat: split project description into 4 fields

* feat: bump doctrine related dependencies

* feat: bump symfony related dependencies

* feat: make categories work on idOrSlug

* fix: allow filtering on project descBrief property

* fix: update constraints on project update to allow optional updates of properties

* fix: update Projects test suite to new project shape

* fix: order of DROP operations in migration Version20260813171902

* fix: move accounting balance and checkout to supports listeners to onFlush events

* fix: bad order of filter safeguards

* chore: code style by php-cs-fixer

* fix: prevent uninitialized fields on api resource from breaking AccountingVoter

* fix: small bug preventing code improvements on Accounting api resource

* feat: add cover property on ProjectReward resource

* feat: add cover property to Project resources

* feat: use video cover for project cover

* feat: add migration for property cover on project and rewards

* fix: small improvements on UserOwned helpers

* feat: add territory to project creation

* feat: mark creation fields as required

* feat: add CollaborationCandidacy resource

* fix: update old validations access of new types

* feat: add validation for charges targetting projects not in campaign

* feat: validate new collaboration candicacies are to open collaborations

* feat: prevent future object access issues in SameProjectRewardChargeValidator

* fix: return void on succesfull delete operations

* fix: force set of isFinite property

* feat: allow to filter ProjectBudgetItem by type and deadline

* feat: remove example values from .env

* feat: add testing encryption keys

* feat: make project in BudgetItem body required

* feat: add testing encryption keys to actions

* feat: add collaborations property to ProjectApiResource

* feat: Update Users PATCH body (#246)

* feat: move UserSignupDto to Dto\User namespace

* fix: bad parsing of INSTR by ApiPlatform pagination layer

* fix: make User resources be processed by dedicated update processor

* fix: specify authentication usage of UserSignupDto::password property

* feat: improve non-crawlable URI detection for ScoutService

* feat: add "org" to Links with known organizations behind links

* feat: map raw uri strings to full Link objects

* fix: bad loading of existing user data in UserStateProcessor

* feat: add NotExisting validator

* feat: use NotExisting constraint on Users handle, email, Projects titles and Tipjar names

* fix: check for existing node item in URI rel detection

* fix: make app:oauth2-server:consent-client true by default

* feat: bump league/oauth2-server-bundle to 1.2.2

* feat: add UserConverter decorator to have league/oauth2-server JWT's sub have User id instead of handle

* fix: specify OAuth2 and  separate server from client utilities

* fix: make app_user_provider use ID instead of handle

* feat: add explaining comment to doctrine_encryption.key_id

* feat: add status to reward claims

* feat: make default RewardClaim entity status in_pending

* feat: add shorter check for ownership of projects

* feat: allow to modify status of reward claims

* feat: add shipping address to reward claims

* fix: remove requirement of status in claim update op

* fix: update filters and remove obsolete attributes from ProjectRewardClaim resource

* feat: update DB layer for project reward claims

* fix: code style issues by PHP-CS-Fixer

* feat: add DoctrineLoggablePumpTrait to remove Gedmo Loggable event listener

* fix: update legacy ref to FileUriException

* feat: pump reward claim status and shipping address from v3 records

* fix: update pumps batch sizes and injected dependencies

* feat: pump user roles

* feat: add true image cover retrieval and leave video as fallback for ProjectsPump

* feat: pump project collaborations

* feat: allow cascading of collaborations

* fix: set isFulfilled of collaboration

* fix: link collaboration to in-pumping project

* fix: add trailing comma to list of fulfilling statuses

* test: update PHPUnit CI to use bin/phpunit instead of action

* feat: set memory_limit of PHPUnit run on CI to 128M

* fix: add user avatar to user pump processing

* fix: set invests batch size to 1 to avoid support duplicates on insert

* Merge pull request #253 from goteo/fix/pumping-bugs

fix: Pumping bugs
2026-10-01 16:26:01 +02:00

77 lines
3.1 KiB
YAML

security:
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
legacy:
id: 'App\Security\Hasher\LegacyPasswordHasher'
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
algorithm: "auto"
migrate_from:
- legacy
# https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
providers:
# used to reload user from session & other features (e.g. switch_user)
app_user_provider:
entity:
class: App\Entity\User\User
property: id
login_user_provider:
id: App\Security\LoginUserProvider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api:
provider: app_user_provider
pattern: ^/v4
security: true
stateless: true
# https://github.com/thephpleague/oauth2-server-bundle/blob/master/docs/basic-setup.md#configuring-the-security-layer
oauth2: true
main:
provider: login_user_provider
entry_point: App\Security\LoginEntryPoint
form_login:
login_path: app_login
check_path: app_login
enable_csrf: true
remember_me:
secret: '%kernel.secret%'
lifetime: 604800
logout:
path: app_logout
# where to redirect after logout
# target: app_any_route
custom_authenticator: App\Security\OAuthProvidersCallbackAuthenticator
# activate different ways to authenticate
# https://symfony.com/doc/current/security.html#the-firewall
# https://symfony.com/doc/current/security/impersonating_user.html
# switch_user: true
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
- { path: ^/oauth/authorize, roles: IS_AUTHENTICATED_REMEMBERED }
- { path: ^/security/consent, roles: IS_AUTHENTICATED_REMEMBERED }
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
when@test:
security:
firewalls:
api:
oauth2: false
custom_authenticators:
- App\Security\TestingAuthenticator
password_hashers:
# By default, password hashers are resource intensive and take time. This is
# important to generate secure password hashes. In tests however, secure hashes
# are not important, waste resources and increase test times. The following
# reduces the work factor to the lowest possible values.
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
algorithm: auto
cost: 4 # Lowest possible value for bcrypt
time_cost: 3 # Lowest possible value for argon
memory_cost: 10 # Lowest possible value for argon