Commit Graph
39 Commits
Author SHA1 Message Date
Raphael MichelandMira Weller 6fa7d4289b [SECURITY] Centralize framebreaking logic from payment plugins to core (CVE-2026-13602)
- Add central framebreaker page via safelink helper
- Update paypal, paypal2 and stripe plugins to use central framebreaker
- Add CSP header to cookies.html

---------

Co-authored-by: Mira Weller <weller@pretix.eu>
2026-07-01 14:06:59 +02:00
Martin Gross 0f2ebb8687 PPv2: Fix permission-check for ISU (event.settings.general:write to event.settings.payment:write) 2026-04-14 17:02:47 +02:00
df0b580dd6 Pluggable permissions (#5728)
* Data model draft

* Refactor query and assignment usages of old permissions

* Backend UI

* API serializer

* Big string replace

* Docs, tests and fixes for teams api

* Update docs for device auth

* Eliminate old names

* Make tests pass

* Use new permissions, remove inconsistencies

* Add test for translations

* Show plugin permissions

* Add permission for seating plans

* Fix plugin activation

* Fix failing test

* Refactor to permission groups

* Update doc/api/resources/devices.rst

Co-authored-by: luelista <weller@rami.io>

* Update doc/api/resources/events.rst

Co-authored-by: luelista <weller@rami.io>

* Update src/pretix/api/serializers/organizer.py

Co-authored-by: luelista <weller@rami.io>

* Fix typo

* Fix python version compat

* Replacement after rebase

* Add proper permission handling for exports

* Docs for exporters

* Runtime linting of permission names

* Fix typos

* Show export page even without orders permission

* More legacy compat

* Do not strongly validate before plugins are loaded

* Rebase migration

* Add permission for outgoing mails

* Review notes

* Update doc/api/resources/teams.rst

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* Clean up logic around exporters

* Review and failures

* Fix migration leading to forbidden combination

* Handle permissions on event copying

* Remove print-statements

* Make test clearer

* Review feedback

* Add AnyPermissionOf

* migration safety

---------

Co-authored-by: luelista <weller@rami.io>
Co-authored-by: Richard Schreiber <schreiber@pretix.eu>
2026-03-17 14:43:56 +01:00
3e972eddbf Allow to round taxes on order-level (#5019)
* Allow to round taxes on order-level

* Rename get_cart_total

* Persist rounding mode with order

* Add general docs

* Order creation API

* Update fee algorithm

* Rounding on payment method change

* Round when splitting order

* Fix failing tests

* Add settings page

* Add tests

* Replace algorithm

* Add test case for currency rounding

* Improve order change

* Update flowchart

* Update discount logic (more hypothetical, we don't store rounding on cart positions atm)

* Rename internal method

* Fix typo

* Update help text

* Apply suggestions from code review

Co-authored-by: luelista <weller@rami.io>

* Order rounding refactor (#5571)

* Add RoundingCorrectionMixin providing before-rounding-values as properties

* Use gross_price_before_rounding in more places

* Update doc/development/algorithms/pricing.rst

Co-authored-by: Martin Gross <gross@rami.io>

* Allow to override on perform_order

* Rebase migration

* Fix event cancellation

---------

Co-authored-by: luelista <weller@rami.io>
Co-authored-by: Martin Gross <gross@rami.io>
2025-10-30 11:49:31 +01:00
Raphael MichelandGitHub 177a7d07fc Update license header (#5540) 2025-10-10 15:32:46 +02:00
Raphael MichelandGitHub 8ec8b69755 PayPal: Prevent race condition between refund and incoming webhook (Z#23185186) (#4911) 2025-03-24 18:10:58 +01:00
Raphael MichelandGitHub 03d3c389da Fix #1674 -- Change spelling of e-mail to email (#4636)
* Fix #1674 -- Change spelling of e-mail to email

* Conflicts and word list

* Add MobilePay to wordlist

* fix usage in tests
2024-11-18 17:21:29 +01:00
Martin Gross 6e6d6b2746 PayPal2: Skip webhook order capture if no OrderPayment exists yet 2024-11-13 10:13:50 +01:00
Raphael MichelandGitHub 13720e731e Easier PCI DSS compliance for payment pages (#4273)
* Assign names to compressed scripts

* Make PCI-relevant pages detectable

* Make payment summary markup more consistant to easy work in tracking plugin

* Add docs note
2024-07-31 13:11:38 +02:00
Martin GrossandGitHub 5758e0dd68 PPv2 APM: Create referenced PPObjects for APM Orders; enable webhooks to capture them (#3958) 2024-05-27 13:45:37 +02:00
MiraandGitHub 05a2f411db Improve order secret handling (#4139)
- use hmac.compare_digest for all secret comparisons
- use salted_hmac with sha256 instead of plain sha1 for hashed secrets
- move secret handling into helper functions
2024-05-23 14:30:16 +02:00
Raphael Michel 12a898476e Replace redirect() with redirect_to_url() if we don't need Django's resolution 2023-12-08 15:38:50 +01:00
Raphael Michel cc7f249cb8 Fix crash if a tax rule on a fee prevents sale (PRETIXEU-8MZ) 2023-06-23 11:49:09 +02:00
Raphael Michel db06ed132a PPv2: Fix invalid cart payments in edge case (PRETIXEU-7QG) 2023-01-02 10:19:31 +01:00
Raphael Michel eeb6e11934 PPv2: Revert format change of log entries 2022-12-20 16:01:44 +01:00
Raphael Michel 1238165e7a PPv2: Handle types correctly in webhook 2022-12-20 15:29:37 +01:00
Raphael Michel c4aed04a18 PPv2: Fix incomplete validation of capture status 2022-12-20 14:54:31 +01:00
aab7042cda PPv2: Simulate cart_payments in XHR-calls; only look at multi_use-payments for remaining value calculation (#2970)
Co-authored-by: Raphael Michel <michel@rami.io>
2022-12-12 15:35:16 +01:00
Raphael Michel 0919d5dbca Fix regression in PayPal payments 2022-11-25 11:29:19 +01:00
Raphael MichelandGitHub 9624b1c505 Support for external gift cards (#2912) 2022-11-23 14:52:56 +01:00
Raphael MichelandGitHub 5b8228bea0 PPv2: Improve error handling (#2899) 2022-11-14 16:55:30 +01:00
Martin Gross 6a22cb3021 PayPal2: Refuse ISU-connection with unconfirmed email address 2022-09-28 13:20:20 +02:00
Martin Gross 80e0978054 PPv2: Check for OID and not PAYID in degraded failback-mode 2022-08-19 15:13:58 +02:00
Martin Gross 96b57f9a50 PPv2/ISU: Set cache token forever/non-expiring 2022-07-04 17:03:10 +02:00
Martin Gross 0faf245290 PPv2: Default pretix_paypal_token_hash_cycle to 1 and not 0 2022-07-04 16:52:51 +02:00
Martin Gross cee72b5a6d PPv2: Fix CHECKOUT.ORDER.APPROVED Webhook for skeleton payments (PRETIXEU-6TN) 2022-07-04 11:15:01 +02:00
Raphael Michel 5c56139b56 PPv2: Fix crash in error handling of isu_return (PRETIXEU-6ZR) 2022-07-04 09:46:56 +02:00
Richard SchreiberandGitHub 550cb28a0e PayPal2: improve error-logging in isu_return 2022-06-20 14:27:41 +02:00
Martin Gross b206509345 PPv2: ISU-Return: explicitly set incr cache key if not set 2022-06-08 13:30:12 +02:00
Martin Gross fdee69cd69 PPv2: Revert ISU Return-Retry; Add access token cache invalidation on ISU return 2022-06-08 12:59:30 +02:00
Martin Gross 50d4ed827d PPv2: Remove stray text suffix 2022-06-07 18:29:57 +02:00
Martin Gross 87b3f91ad3 PPv2: ISU: Retry up to three times to retrieve connected merchant information before failing. 2022-06-07 17:25:39 +02:00
Martin Gross ea6c698b3a PPv2: Call get_fees without explicit payment provider. 2022-06-01 12:20:28 +02:00
Martin Gross d2d6a30623 PPv2: minor XHR/get_fees cleanup 2022-06-01 12:12:49 +02:00
Martin Gross 68097291ca PPv2: Include other fees than payment fees into the XHR-calculation 2022-06-01 12:10:58 +02:00
Martin Gross a8286f77d8 PPv2: Fix fee calculation if no payment fee is present 2022-06-01 10:58:02 +02:00
Martin Gross e20c2c56f0 PPv2: Surface error-messages if XHR-call fails 2022-05-31 19:23:57 +02:00
Martin Gross 823de60e8c PPv2: Make XHR view a proper view and not a TemplateView 2022-05-31 19:02:55 +02:00
925b8334a9 PayPal: Migrate to Order v2 API and ISU authentication (#2493) (#2614)
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Martin Gross <gross@rami.io>
2022-05-30 15:44:22 +02:00