2076 Commits
Author SHA1 Message Date
Daniel Subiabre García d6beda1097 Merge pull request #10 from goteo/develop
PHPUnit / phpunit (push) Canceled after 0s
chore: sync main to open-core develop
2026-11-05 15:51:03 +01:00
Pep Villalonga Amorósanddaniel.subiabre 96ea565448 fix: declare roles[] filter as form style in OpenAPI spec (#268)
Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-11-05 12:11:13 +01:00
daniel.subiabre 5c6ba99ddf fix: bad response model definition (#269) 2026-11-04 17:23:03 +01:00
Pep Villalonga Amorós a82b9dec37 feat: address ownership checks and default address (#262) 2026-11-04 16:53:45 +01:00
Pep Villalonga Amorósanddaniel.subiabre 7a8efca486 fix: keep user links as given, preserve them on PATCH and validate them (#267)
* fix: keep user links as given, preserve them on PATCH and validate them

* fix: add doc-block to ScoutService::normalizeUrl

* fix: raise PHPUnit CI memory limit to 256M

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-11-04 16:52:41 +01:00
Pep Villalonga Amorós c9bd5a0c71 feat: filter accountings collection by id (#265)
* feat: filter accountings collection by id

* test: fix Foundry boot order in user UpdateTest
2026-11-02 13:50:57 +01:00
Pep Villalonga Amorós 4709d320ae fix: speed up users q and email filters (#264)
* fix: search QFilter related fields with subqueries instead of joins

* fix: restrict users email filter to admins and match by prefix

* test: fix Foundry boot order in user UpdateTest

* fix: only search users email in q filter for admins
2026-11-02 13:49:28 +01:00
Pep Villalonga Amorós d6a21b9e58 fix: Allow project filters on ProjectSupport money_total (#261)
* fix: Allow project filters on ProjectSupport money_total

* fix: Totalize money of filtered Projects collection

* fix: Totalize Accounting balances instead of ProjectSupports

* fix: Persist MoneyTotal fixtures directly through the EntityManager
2026-11-02 13:45:54 +01:00
Daniel Subiabre García 70c46db236 Merge pull request #7 from goteo/develop
chore: sync main to open-core develop
2026-10-27 14:05:32 +01:00
daniel.subiabre 037b0ae5c9 fix: hard to reach password reset (#263)
* feat: add link to password reset in login

* fix: improve display of known OAuth2 clients
2026-10-26 18:29:25 +01:00
Pep Villalonga Amorós 28a6ab8fa2 feat: add missing profile form fields to user, person and organization (#260)
* feat: add missing profile form fields to user, person and organization

* fix: address review on user profile fields
2026-10-26 18:29:06 +01:00
Daniel Subiabre García bd5c59b3a7 Merge pull request #5 from goteo/develop
PHPUnit / phpunit (push) Canceled after 0s
chore: sync main to open-core develop
2026-10-26 14:20:04 +01:00
daniel.subiabre eb822d7ff1 feat: Mail integration (#259)
* feat: composer require symfony/mailer

* feat: add entities for massive emailing

* feat: expose mail API resources

* feat: add BatchStatus::SentErrors

* fix: show client status after consent command

* feat: define shape of audiences criteria

* fix: missing map entity provider for mail entities

* fix: unsupported array/object conversion of audience criterias

* fix: rename MailBatch to MailBroadcast and MailBatchRecipient to MailDispatch

* feat: add command to process broadcasts

* feat: add lock to broadcast process command

* fix: remove dispatchCursor from Broadcast

* fix: make broadcasts-process command fast

* feat: update mailpit config for local dev

* feat: add app:mail:dispatches-process command

* feat: it was fun to play with a massive mailing prototype

* feat: composer require symfonycasts/reset-password-bundle

* feat: make reset-password

* fix: bad ALTER on migration down op

* feat: add migration for reset password bundle

* fix: update forms style

* feat: configure mailer address via env var

* fix: remove missing asset reference

* feat: translate /auth/reset-password

* feat: translate email message

* fix: calendar minimum optimum deadline not being set when release was given

* feat: translate /check-email

* feat: translate /reset

* fix: rename main SecurityController path to /auth

* feat: add known oauth2 clients controllr

* fix: deprecated custom responses openapi context definitions

* fix: projects not in campaign can still have a calendar

* fix: weird af regression out of the blue, fuck software

* feat: fuck my life
2026-10-26 12:52:19 +01:00
Daniel Subiabre García faed879237 Merge pull request #4 from goteo/develop
chore: sync main to open-core develop
2026-10-20 17:31:34 +02:00
Pep Villalonga Amorósanddaniel.subiabre 0bc664a224 feat: generate random user handles with random-name-generator (#256)
* feat: generate random user handles with random-name-generator

* feat: use random-name-combiner for user handles

* feat: use random-name-generator Combination for user handles

* chore: update composer.lock for random-name-generator Combination

* feat: use Platoniq package

* feat: centralise user handle validation in UserHandle constraint

* feat: use platoniq/random-name-generator v1.0

* feat: increase uniqueness test size to 128 samples

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-10-20 16:23:25 +02:00
daniel.subiabre b48d4ed6de fix: Allow ProjectRewards shipping (#258)
* feat: add security to avoid exposing addresses to all users

* feat: add hasShipping to ProjectReward resources

* feat: split Address write from read API shapes

* fix: bad management of address input

* feat: pump reward hasShipping based on units

* fix: improve empty v3 address pumping

* fix: process country of v3 invest_address records
2026-10-13 17:55:59 +02:00
Daniel Subiabre García b4f1281e9c Merge pull request #3 from goteo/develop
chore: sync main to open-core develop
2026-10-08 16:29:14 +02:00
Daniel Subiabre García dc23606b42 Merge branch 'main' into develop 2026-10-08 16:18:49 +02:00
daniel.subiabre ac47aec378 feat: Themes (#257)
* feat: add trait to unify get by id or slug logic

* feat: add Theme resource

* fix: categories and themes

* feat: update api docs for projects to themes relationship

* feat: update doctrine relationship of projects to themes

* feat: add v3 categories to v4 themes pumping during projects pumping
2026-10-08 13:02:07 +02:00
daniel.subiabre 14ee28be4f [feat] Project reviews (#177)
* feat: start project reviews entity

* feat: add review areas entity

* feat: add review comments entity

* fix: code styles improvements by php-cs-fixer

* feat: expose project review resources in the API

* feat: add timestampt to review resources

* feat: add SQL migration

* fix: update ProjectReview API docs and operations

* feat: refactor ProjectsListener to dedicated project status listener

* fix: make default review area risk high

* feat: add ReviewService for creating default project reviews

* fix: renamed timestampt entity traits

* fix: update doctrine migration

* feat: test for release date to be set greater than today's start

* feat: add test for project campaign review

* fix: update person and organization patch validations

* fix: test if review entity is truly persisted

* fix: bad start statuses in project tests

* fix: ProjectStatusListener not persisting side effect data

* fix: centralize project status change side-effects processing in ProjectService

* fix: small review persistence tweaks

* feat: allow only concerned users to see and edit review areas

* feat: apply validations and security for concerned users to review comments
2026-10-07 13:31:44 +02:00
daniel.subiabre 86ba2c4fe4 fix: HTTPS in OAuth2 redirect_uri (#255)
* feat: remove router schema force via config

* fix: configure trusted proxies via env vars

* fix: typo in var description
2026-10-05 15:43:20 +02:00
daniel.subiabre 2dec0d1db5 fix: HTTP (!s) scheme in callback for OAuth2 providers (#254)
* fix: bad path to oauth2 provider logo

* feat: set https scheme on router on prod context

* feat: configure oauth2 jwts ttl via env var

* fix: bad nesting of access_token_ttl yaml option
2026-10-02 16:03:20 +02:00
Daniel Subiabre García e1b7fec3ba chore: sync main to open-core develop (#2)
* 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-02 03:26:21 +02:00
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
daniel.subiabre 5d878f2c4c Merge pull request #253 from goteo/fix/pumping-bugs
fix: Pumping bugs
2026-10-01 16:22:42 +02:00
daniel.subiabre 07b0b47e92 Merge pull request #252 from goteo/fix/missing-user-avatar-pumping
fix: missing User's avatar pumping
2026-09-30 17:40:38 +02:00
daniel.subiabre 7732352bb7 fix: set invests batch size to 1 to avoid support duplicates on insert 2026-09-30 17:36:42 +02:00
daniel.subiabre c3b4299097 fix: add user avatar to user pump processing 2026-09-30 17:36:27 +02:00
daniel.subiabre a2371240c2 Merge pull request #251 from goteo/feat/pump-user-roles
feat: update Pumps
2026-09-30 16:51:29 +02:00
daniel.subiabre deef8ad171 feat: set memory_limit of PHPUnit run on CI to 128M 2026-09-30 16:42:48 +02:00
daniel.subiabre 3d0925ca0f test: update PHPUnit CI to use bin/phpunit instead of action 2026-09-30 16:33:26 +02:00
daniel.subiabre 727ddaee15 fix: add trailing comma to list of fulfilling statuses 2026-09-30 15:33:30 +02:00
daniel.subiabre e1e1604f31 fix: link collaboration to in-pumping project 2026-09-30 15:32:45 +02:00
daniel.subiabre 1bcb1f3daa fix: set isFulfilled of collaboration 2026-09-30 15:03:18 +02:00
daniel.subiabre 574b6d3ccf feat: allow cascading of collaborations 2026-09-30 14:55:13 +02:00
daniel.subiabre 10c7806ef6 feat: pump project collaborations 2026-09-30 14:32:50 +02:00
daniel.subiabre 87ccc073df feat: add true image cover retrieval and leave video as fallback for ProjectsPump 2026-09-30 14:15:09 +02:00
daniel.subiabre 74db679146 feat: pump user roles 2026-09-30 13:06:51 +02:00
daniel.subiabre dd5361c925 Merge pull request #250 from goteo/feat/update-project-rewardclaim-data
feat: Update ProjectRewardClaim data
2026-09-30 10:26:36 +02:00
daniel.subiabre 9b8911eefb fix: update pumps batch sizes and injected dependencies 2026-09-30 10:24:27 +02:00
daniel.subiabre 1f6eb4fb4d feat: pump reward claim status and shipping address from v3 records 2026-09-30 10:16:52 +02:00
daniel.subiabre 80178bb7f0 fix: update legacy ref to FileUriException 2026-09-30 09:56:26 +02:00
daniel.subiabre a328073b0f feat: add DoctrineLoggablePumpTrait to remove Gedmo Loggable event listener 2026-09-30 09:55:04 +02:00
daniel.subiabre 995fd339b7 fix: code style issues by PHP-CS-Fixer 2026-09-29 19:07:38 +02:00
daniel.subiabre 6f88f746f3 feat: update DB layer for project reward claims 2026-09-29 19:07:06 +02:00
daniel.subiabre 242755e01e fix: update filters and remove obsolete attributes from ProjectRewardClaim resource 2026-09-29 19:01:18 +02:00
daniel.subiabre 738f2ada84 fix: remove requirement of status in claim update op 2026-09-29 18:55:07 +02:00
daniel.subiabre 81a264a241 feat: add shipping address to reward claims 2026-09-29 18:54:25 +02:00
daniel.subiabre bb297c5fac feat: allow to modify status of reward claims 2026-09-29 18:13:43 +02:00
daniel.subiabre 4fedf2657b feat: add shorter check for ownership of projects 2026-09-29 17:41:31 +02:00