2683 Commits

Author SHA1 Message Date
Aleksander Machniak
609124d94f OAuth: Add oauth_auth_type option 2026-01-25 13:03:05 +01:00
Aleksander Machniak
75dbc2fe11 OAuth: Fix bug where it was impossible to login again after logout (#10073) 2026-01-25 12:26:43 +01:00
Dominik Schmidt
ce893b2e1d Preserve requested url on oidc login (#10033)
* feat: preserve requested url on oidc login
* fix(oidc): redirect to idp when session timed out
2025-11-29 18:21:16 +01:00
Dominik Schmidt
01a362aa9f feat: add getter for cached oauth options (#10029) 2025-11-23 12:39:21 +01:00
Pablo Zmdl
a361fa79f1 Add rel='noopener' to all links opening in a new window
Browsers younger than ~5 years don't need this, but older browsers might cause problems.

Code style change as demanded by eslint

Remove accidentally added `id` attribute

Fix test as it was intended
2025-11-04 16:03:22 +01:00
Pablo Zmdl
e34a813355 New plugin "markdown_editor": compose in markdown, send as HTML
This adds a markdown editor that sends HTML to the server.

It uses codemirror and some custom code to show a syntax highlighted
textarea and some buttons to help editing
(including a preview).

Drafts get marked via an internal email header that causes the markdown
editor to automatically start if a message composition is
continued that was started using the markdown editor.
2025-10-27 15:34:19 +01:00
Pablo Zmdl
fd8ac88643 Allow additional attributes for included scripts 2025-10-27 15:34:19 +01:00
Aleksander Machniak
0abdccaf55 Get rid of IE related code 2025-10-08 11:13:26 +02:00
Aleksander Machniak
1e55383302 Use symfony/polyfill-php85 for array_first() and array_last() 2025-10-03 14:27:05 +02:00
Philip Weir
7fd9bf05e3 Only apply fix_path for href attrib in <link>s (#9943) 2025-09-18 07:36:36 +02:00
Pablo Zmdl
a03221041e Run test with PHP 8.5-rc (#9970)
* Allow to inject composer arguments into testing scripts

* Run unit tests with PHP v8.5, too

* Run browser tests with PHP 8.5, too

* Depend on php-cs-fixer v3.8, which supports PHP v8.4

* Run code style checks in CI on PHP v8.4

* Check for vars being set and not null before using them as array keys

* Use generic tag name in container image build script

The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.

* Check that variable is usable before using it as array key

This includes proper type declarations for the method arguments and its return value.

* Ensure that the input to chr() is between 0 and 255.

* Require guzzle v7.10.0, which supports PHP 8.5

* Update phpunit a little to decide when to fail on deprecations

PHPUnit 10.5.47 and later know the flag `--do-not-fail-on-deprecation`, which allows us to make it not exit with code 1
in case of deprecations on the second run of the script. That second run uses the lowest valid dependencies, which might
contain deprecations when used with newer versions of PHP, but still are acceptable versions, and should not make our
tests fail.

* Run message rendering tests with PHP v8.4 and v8.5, too

* Check explicitly for null-ness

0 would be a valid value here.

* Replace chr() by mb_chr() and remove the workaround
2025-09-14 11:33:38 +02:00
Aleksander Machniak
05d39bc406 Fix PHP Fatal error: Uncaught TypeError: html::quote(): Argument #1 ($str) must be of type string, null given (#9957) 2025-08-23 09:17:59 +02:00
Aleksander Machniak
3139bff247 CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
Michael Voříšek
026eb8c801 Enforce leading backslash for non-namespaced non-Roundcube uses (#9935) 2025-08-15 10:27:00 +02:00
Philip Weir
946ba021b8 Add keep_formatting_default setting (#9892) 2025-06-15 08:01:06 +02:00
Aleksander Machniak
ded28db823 Installer: Move logon warning code into rcmail_install, change colors, fix link 2025-06-15 07:53:47 +02:00
Aleksander Machniak
781a23768a Revert unintended change 2025-06-14 18:10:30 +02:00
Aleksander Machniak
eebc08c0c6 CS fix 2025-06-14 17:58:11 +02:00
Aleksander Machniak
ed7b459014 Validate timezone stored in session 2025-06-11 14:39:35 +02:00
Aleksander Machniak
1488e57558 OAuth: Relax JWKS verification - 'kid' is optional 2025-05-20 15:20:03 +02:00
Aleksander Machniak
1d080c7494 Bump PHP version for CS fixer, enable some default rules 2025-05-04 12:59:37 +02:00
Aleksander Machniak
8208b9f87d Fix bug in handling rcmail::format_date()'s $convert argument (#9666) 2025-04-21 12:28:14 +02:00
Gianluca Giacometti
053ffaef6b Exclude inline base64 images from static.php (#9835) 2025-04-05 08:54:25 +02:00
Aleksander Machniak
f7d8852d17 Use str_starts_with() where applicable 2025-03-30 11:32:38 +02:00
Aleksander Machniak
62c092bf91 Fix static resources location on a page with PATH_INFO (#9814) 2025-03-30 10:55:48 +02:00
Philip Weir
e37709c5e8 Add enable_autolink option for HTML editor (#9818, #9762) 2025-03-24 18:24:46 +01:00
Aleksander Machniak
d03767b7f1 OAuth: improve token refresh - check token also in the keep-alive action 2025-03-18 13:58:54 +01:00
Aleksander Machniak
91f4e289b2 Merge branch 'master' of github.com:roundcube/roundcubemail 2025-03-16 13:33:38 +01:00
Aleksander Machniak
9afeb0174e Use PHPStan v2 2025-03-16 13:33:15 +01:00
Pablo Zmdl
99236f3be4 Fix washing html from rcube_attachment_handler (#9785)
This probably wasn't implemented previously because HTML-parts usually
didn't run through get.php.
2025-03-16 12:45:15 +01:00
Aleksander Machniak
29d0eba3db Add rcmail_oauth::is_token_valid() method 2025-03-14 12:12:56 +01:00
Aleksander Machniak
94fd5a0f80 CS fixes (for the new fixer version rules) 2025-02-23 11:51:27 +01:00
Aleksander Machniak
a9b1ca34f3 Update min PHP version check, cleanup outdated checks/comments 2025-02-23 11:18:50 +01:00
Philip Weir
5e57ef83bd Add asset url to additional logo paths (#9768) 2025-02-11 18:10:48 +01:00
Aleksander Machniak
64df318a73 Add static files server (#9294)
Make use of public_html mandatory
2025-02-09 14:10:50 +01:00
Philip Weir
ccede1f272 Update links in comments and config to https where available (#9759) 2025-01-26 13:34:57 +01:00
Aleksander Machniak
94a6144a87 CS fix 2024-12-03 12:56:21 +01:00
Aleksander Machniak
c516f6e26f Fix Oauth issues with use_secure_urls=true (#9722) 2024-12-03 12:44:12 +01:00
Michael Voříšek
efcdce84ba Keep phpstan strict rules testing (#9424)
* Revert "Get rid of phpstan/phpstan-strict-rules"

This reverts commit ff59ade31a.

* drop phpstan baseline

* fix foreach phpstan issue

* adjust for rebase

* fix method call case

* ignore one phpstan error even after isset
2024-11-20 08:13:16 +01:00
Aleksander Machniak
9ab47d94fa Don't initialize OAuth handler in CLI 2024-10-28 11:45:55 +01:00
Aleksander Machniak
83417f5883 OAuth: Add a flag to the 'authenticate' hook arguments indicating SSO is in use
This way plugins can react to it, e.g. 2FA plugins can skip asking for the second factor
2024-09-12 09:39:49 +02:00
Aleksander Machniak
c5a861114e OAuth: Refresh token is optional (#9626) 2024-09-06 11:17:30 +02:00
Aleksander Machniak
d26e4354f7 Add small sanity check 2024-09-02 13:54:31 +02:00
Aleksander Machniak
0cf65ad2b1 OAuth: Support standard authentication with short-living password received with OIDC token (#9530) 2024-08-29 13:17:54 +02:00
Aleksander Machniak
a134c83f14 Cleanup 2024-08-29 13:11:45 +02:00
Aleksander Machniak
4023931ed3 OAuth: Fix some PHP warnings and improve debug logging 2024-08-27 19:33:03 +02:00
Aleksander Machniak
e12e273c0c More tests 2024-08-04 10:28:16 +02:00
Aleksander Machniak
c706575a0b CS fix 2024-07-31 18:11:51 +02:00
Michael Voříšek
6a5f9ee7ce Add override method attributes (#9272) 2024-06-02 15:57:56 +02:00
Pablo Zmdl
54b5e14933 Show quota only if sensible (#9366)
If a quota is not supported, or its value is unknown or unlimited, don't show the info element.
2024-06-01 11:25:47 +02:00