Tim Düsterhus [Tue, 19 Jan 2021 10:16:35 +0000 (11:16 +0100)]
Move permission checks for Multifactor forms into checkPermissions()
This avoids issues with requestReauthentication() being called for guests.
I verified that none of the actual processing happens before the
checkPermissions() check.
Tim Düsterhus [Tue, 19 Jan 2021 09:32:59 +0000 (10:32 +0100)]
Remove call to deprecated HeaderUtil::exceptionDisableGzip();
This method is a no-op.
see
91b46ad444a1c0d90ae0c309b1386fbd5919f30b
see #3634
see #3881
Matthias Schmidt [Tue, 19 Jan 2021 08:10:43 +0000 (09:10 +0100)]
Use `jslang` in templates instead of `lang`
Matthias Schmidt [Tue, 19 Jan 2021 07:49:50 +0000 (08:49 +0100)]
Replace `boolean` with `bool` in PHP documentation
Matthias Schmidt [Tue, 19 Jan 2021 07:20:23 +0000 (08:20 +0100)]
Replace `integer` with `int` in PHP documentation
Matthias Schmidt [Mon, 18 Jan 2021 16:09:08 +0000 (17:09 +0100)]
Remove `@noinspection PhpUnusedParameterInspection` comments
Matthias Schmidt [Mon, 18 Jan 2021 16:04:16 +0000 (17:04 +0100)]
Remove `@noinspection PhpMissingParentCallCommonInspection` comments
Matthias Schmidt [Mon, 18 Jan 2021 16:03:13 +0000 (17:03 +0100)]
Replace usage of `WCF.System.PageNavigation` with `Ui/Page/JumpTo` (#3877)
See #3876
Matthias Schmidt [Mon, 18 Jan 2021 16:02:54 +0000 (17:02 +0100)]
Deprecate `WCF.System.Dependency.Manager` (#3879)
It has not been actively used for a very long time, see
d1d6845c77fd7cde7558d0defd71ab7947643fe7.
Marcel Werk [Mon, 18 Jan 2021 15:21:23 +0000 (16:21 +0100)]
Merge branch '5.3'
Marcel Werk [Mon, 18 Jan 2021 15:20:15 +0000 (16:20 +0100)]
Merge branch '5.2' into 5.3
Marcel Werk [Mon, 18 Jan 2021 15:19:54 +0000 (16:19 +0100)]
Merge branch '3.1' into 5.2
Marcel Werk [Mon, 18 Jan 2021 15:19:25 +0000 (16:19 +0100)]
Permissions for media were not saved correctly
joshuaruesweg [Mon, 18 Jan 2021 14:58:43 +0000 (15:58 +0100)]
Add spacing beetween reaction icon in notifications
joshuaruesweg [Mon, 18 Jan 2021 12:54:21 +0000 (13:54 +0100)]
Fix double html encoding in trophy activity events
Matthias Schmidt [Sun, 17 Jan 2021 16:10:36 +0000 (17:10 +0100)]
Fix content removal clipboard JavaScript on ACP user list page
Close #3878
Matthias Schmidt [Sun, 17 Jan 2021 12:41:08 +0000 (13:41 +0100)]
Fix hiding suggestion dropdown when no suggestion are available
See
0a9081c855bf8b9ab0ffbd5ab98679a11f23849c
Matthias Schmidt [Sun, 17 Jan 2021 12:31:09 +0000 (13:31 +0100)]
Fix `Ui/ItemList` for textareas
`parentElement` is no longer `element.parentNode` as `element` has been repositioned.
Alexander Ebert [Sat, 16 Jan 2021 13:29:59 +0000 (14:29 +0100)]
Missing `tsc` update
Alexander Ebert [Sat, 16 Jan 2021 12:21:32 +0000 (13:21 +0100)]
Hint the return type based on the provided parameters
Matthias Schmidt [Sat, 16 Jan 2021 09:57:15 +0000 (10:57 +0100)]
Remove unused imports
Matthias Schmidt [Sat, 16 Jan 2021 09:35:59 +0000 (10:35 +0100)]
Use `WoltLabSuite/Core/Acp/Ui/Worker` instead of `WCF.ACP.Worker` (#3686)
Additionally, the mail worker dialogs now use titles.
Matthias Schmidt [Sat, 16 Jan 2021 08:30:44 +0000 (09:30 +0100)]
Remove unused import
Alexander Ebert [Fri, 15 Jan 2021 18:16:43 +0000 (19:16 +0100)]
Move data structures for the inline editor into a spearate module
Alexander Ebert [Fri, 15 Jan 2021 17:40:22 +0000 (18:40 +0100)]
Move data structures for the inline editor into a spearate module
Matthias Schmidt [Fri, 15 Jan 2021 15:02:15 +0000 (16:02 +0100)]
Fix fields selector in `Form/Builder/Field/Checkboxes`
Tim Düsterhus [Fri, 15 Jan 2021 14:08:10 +0000 (15:08 +0100)]
Merge pull request #3875 from WoltLab/typescript-tree
Move TypeScript sources into ts/ from wcfsetup/install/files/ts/
Tim Düsterhus [Fri, 15 Jan 2021 14:04:19 +0000 (15:04 +0100)]
Merge branch 'master' into typescript-tree
joshuaruesweg [Fri, 15 Jan 2021 12:47:25 +0000 (13:47 +0100)]
Merge branch '5.3'
joshuaruesweg [Fri, 15 Jan 2021 12:47:06 +0000 (13:47 +0100)]
Merge branch '5.2' into 5.3
joshuaruesweg [Fri, 15 Jan 2021 12:46:45 +0000 (13:46 +0100)]
Merge branch '3.1' into 5.2
joshuaruesweg [Fri, 15 Jan 2021 12:45:59 +0000 (13:45 +0100)]
Set explicit value for invalid select options
Matthias Schmidt [Fri, 15 Jan 2021 10:53:10 +0000 (11:53 +0100)]
Fix import of incorrect module in `Form/Builder/Field/User`
Matthias Schmidt [Fri, 15 Jan 2021 10:29:38 +0000 (11:29 +0100)]
Merge branch '5.3'
Matthias Schmidt [Fri, 15 Jan 2021 10:29:29 +0000 (11:29 +0100)]
Merge branch '5.2' into 5.3
Titus Kirch [Wed, 30 Dec 2020 01:11:55 +0000 (02:11 +0100)]
Support WysiwygFormContainer as children of ITabMenuFormContainer
Matthias Schmidt [Fri, 15 Jan 2021 10:14:35 +0000 (11:14 +0100)]
Make `options` parameter of `Form/Builder/Dialog` a `Partial`
Matthias Schmidt [Fri, 15 Jan 2021 10:08:04 +0000 (11:08 +0100)]
Use monospace font for template listener code field in devtools
Matthias Schmidt [Fri, 15 Jan 2021 10:04:33 +0000 (11:04 +0100)]
Add missing calls to parent constructors in subclasses of `TextFormField`
Matthias Schmidt [Fri, 15 Jan 2021 08:54:04 +0000 (09:54 +0100)]
Merge branch '5.3'
Matthias Schmidt [Fri, 15 Jan 2021 08:53:55 +0000 (09:53 +0100)]
Merge branch '5.2' into 5.3
Matthias Schmidt [Fri, 15 Jan 2021 08:53:37 +0000 (09:53 +0100)]
Fix displaying error messages for devtool projects' instructions
Matthias Schmidt [Fri, 15 Jan 2021 08:50:00 +0000 (09:50 +0100)]
Remove incorrect devtools form field description
Tim Düsterhus [Fri, 15 Jan 2021 08:46:42 +0000 (09:46 +0100)]
Move TypeScript sources into ts/ from wcfsetup/install/files/ts/
Matthias Schmidt [Fri, 15 Jan 2021 08:37:54 +0000 (09:37 +0100)]
Improve variable name
Matthias Schmidt [Fri, 15 Jan 2021 08:35:36 +0000 (09:35 +0100)]
Merge pull request #3871 from WoltLab/devtools_project_typescript
Convert devtools project JavaScript code to TypeScript
Matthias Schmidt [Fri, 15 Jan 2021 08:33:00 +0000 (09:33 +0100)]
Fix required packages' `file` value when editing devtools project
Alexander Ebert [Thu, 14 Jan 2021 18:36:21 +0000 (19:36 +0100)]
Missing signature for `$.ui.messageTabMenu`
Tim Düsterhus [Wed, 13 Jan 2021 10:30:15 +0000 (11:30 +0100)]
Do not take X locks in read-only methods of the MFA Setup class
This was a fun one. Apparently even a query locking exactly a single row by
leveraging an UNIQUE KEY outside of a transaction can deadlock with another
transaction.
Sending two requests to regenerate MFA backup codes at the same time caused the
following to happen within the database:
T1: Within a transaction locks the Setup by using Setup::lock(), putting an X
onto the PRIMARY KEY.
T2: Outside of a transaction reads a Setup using Setup::find(), hitting exactly
a single entry within the `userID` UNIQUE KEY (i.e. a specific
`(userID, objectTypeID)` tuple).
-> This puts an X onto the `userID` UNIQUE KEY.
-> This wants to also put an X onto the corresponding PRIMARY KEY.
-> The PRIMARY KEY is already locked by T1.
-> This query (and thus this transaction) waits within this specific query
for the lock to be granted.
T1: Within the transaction calls Setup::find() with the same parameters as T2.
-> This needs to put the X onto the same row in the `userID` UNIQUE KEY.
-> This row is locked by T2.
-> This transaction needs to wait for that lock to be granted.
Now T1 needs to wait for T2 which already waits for T1 and we're experiencing a
deadlock.
Fix this issue by not taking an X within Setup::find() (i.e. removing the `FOR
UPDATE`). I've verified that nothing calls Setup::find() within a transaction
(without locking the Setup by a different means). Thus this change does not
result in a difference with regard to lock safety. Everything that needs to
modify a Setup already calls Setup::lock() which locks the PRIMARY KEY only.
Fixes #3874
Tim Düsterhus [Wed, 13 Jan 2021 08:20:19 +0000 (09:20 +0100)]
Merge remote-tracking branch 'origin/master'
Tim Düsterhus [Wed, 13 Jan 2021 08:19:25 +0000 (09:19 +0100)]
Merge branch '5.3'
- Dropped update_com.woltlab.wcf_5.3.3_style.php
Tim Düsterhus [Wed, 13 Jan 2021 08:13:00 +0000 (09:13 +0100)]
Merge pull request #3865 from WoltLab/fix-style-preview
Fix the style preview images
Tim Düsterhus [Wed, 13 Jan 2021 08:12:57 +0000 (09:12 +0100)]
Merge pull request #3872 from WoltLab/codemirror-media
Convert `Acp/Ui/CodeMirror/Media` to TypeScript
Alexander Ebert [Tue, 12 Jan 2021 11:53:31 +0000 (12:53 +0100)]
Unified the exception type for GD and Imagick
Tim Düsterhus [Tue, 12 Jan 2021 11:03:00 +0000 (12:03 +0100)]
Use an `enum` for the InsertType
Tim Düsterhus [Tue, 12 Jan 2021 10:59:20 +0000 (11:59 +0100)]
Convert `Acp/Ui/CodeMirror/Media` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 10:25:52 +0000 (11:25 +0100)]
Apply suggestions from code review
Matthias Schmidt [Tue, 12 Jan 2021 09:59:37 +0000 (10:59 +0100)]
Convert `Acp/Form/Builder/Field/Devtools/Project/Instructions` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 09:58:15 +0000 (10:58 +0100)]
Convert `Acp/Form/Builder/Field/Devtools/Project/RequiredPackages` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 09:57:50 +0000 (10:57 +0100)]
Convert `Acp/Form/Builder/Field/Devtools/Project/OptionalPackages` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 09:57:26 +0000 (10:57 +0100)]
Convert `Acp/Form/Builder/Field/Devtools/Project/ExcludedPackages` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 09:57:15 +0000 (10:57 +0100)]
Convert `Acp/Form/Builder/Field/Devtools/Project/AbstractPackageList` to TypeScript
Matthias Schmidt [Tue, 12 Jan 2021 09:56:50 +0000 (10:56 +0100)]
Add devtools form builder-related TypeScript interfaces
Matthias Schmidt [Tue, 12 Jan 2021 09:35:40 +0000 (10:35 +0100)]
Use DomUtil for element visibility in form builder modules
Alexander Ebert [Mon, 11 Jan 2021 19:10:50 +0000 (20:10 +0100)]
Convert `WCF.Message.Quote.Handler` to TypeScript (#3860)
* Convert `WCF.Message.Quote.Handler` to TypeScript
* Export the class separately
Alexander Ebert [Mon, 11 Jan 2021 17:33:56 +0000 (18:33 +0100)]
Image adapters now support saving to GIF/JPG/PNG/WebP (#3869)
* Image adapters now support saving to GIF/JPG/PNG/WebP
* Adjusted the usage of exception
* Missing remark on the version support
Tim Düsterhus [Mon, 11 Jan 2021 15:59:48 +0000 (16:59 +0100)]
Merge branch '5.3'
Tim Düsterhus [Mon, 11 Jan 2021 15:59:19 +0000 (16:59 +0100)]
Fix check for deleted notifications in NotificationEmailDeliveryBackgroundJob
Alexander Ebert [Mon, 11 Jan 2021 15:02:46 +0000 (16:02 +0100)]
Support for WebP images (#3861)
* Support for WebP images
* Inconsistent quote style
Matthias Schmidt [Mon, 11 Jan 2021 13:22:31 +0000 (14:22 +0100)]
Merge pull request #3849 from WoltLab/media_typescript
Convert media-related JavaScript to TypeScript
joshuaruesweg [Mon, 11 Jan 2021 12:54:23 +0000 (13:54 +0100)]
Fix multiple queries for user online list stats
Joshua Rüsweg [Mon, 11 Jan 2021 12:36:54 +0000 (13:36 +0100)]
Merge pull request #3855 from WoltLab/rank-image-upload
Allow upload of rank images via admin panel
joshuaruesweg [Thu, 7 Jan 2021 16:19:32 +0000 (17:19 +0100)]
Add rank image upload migration script
joshuaruesweg [Thu, 7 Jan 2021 14:53:15 +0000 (15:53 +0100)]
Add user rank image upload
Tim Düsterhus [Mon, 11 Jan 2021 11:40:24 +0000 (12:40 +0100)]
Merge branch '5.3'
Tim Düsterhus [Mon, 11 Jan 2021 11:33:09 +0000 (12:33 +0100)]
Merge pull request #3867 from WoltLab/smtp-auth-fail
Fail SMTP auth if credentials are configured but all mechanisms fail
Tim Düsterhus [Mon, 11 Jan 2021 11:18:00 +0000 (12:18 +0100)]
Properly detect EOF in SmtpEmailTransport::read()
Tim Düsterhus [Mon, 11 Jan 2021 10:51:23 +0000 (11:51 +0100)]
Disconnect SMTP session for all types of Exception during connect / auth
Tim Düsterhus [Mon, 11 Jan 2021 10:49:20 +0000 (11:49 +0100)]
Fail SMTP auth if credentials are configured but all mechanisms fail
Tim Düsterhus [Mon, 11 Jan 2021 10:57:31 +0000 (11:57 +0100)]
Merge pull request #3853 from WoltLab/oauth-refactor
Refactor OAuth 2 login
Tim Düsterhus [Mon, 11 Jan 2021 08:44:05 +0000 (09:44 +0100)]
Fix the style preview images
The update 5.3.1 -> 5.3.2 detached all the style preview images in the
database, while leaving the actual image files in the file system. This new
update script *should* fix this situation again, by scanning the asset folder
and reattaching the newest image.
Tim Düsterhus [Fri, 8 Jan 2021 15:51:44 +0000 (16:51 +0100)]
Check for a logged in user in ReauthenticationForm
needsReauthentication() may only be called for logged in users.
Tim Düsterhus [Fri, 8 Jan 2021 15:03:23 +0000 (16:03 +0100)]
Remove MultifactorAuthenticationAbort from ACP guest controller whitelist
Matthias Schmidt [Fri, 8 Jan 2021 10:58:09 +0000 (11:58 +0100)]
Fix eslint issue
Matthias Schmidt [Fri, 8 Jan 2021 10:55:13 +0000 (11:55 +0100)]
Remove obsolete code
Only `insertType = "separate"` was ever supported.
Matthias Schmidt [Fri, 8 Jan 2021 10:53:23 +0000 (11:53 +0100)]
Apply suggestions from code review
Tim Düsterhus [Fri, 8 Jan 2021 09:36:15 +0000 (10:36 +0100)]
Merge pull request #3854 from WoltLab/typescript-no-implicit-any
Improve TypeScript safety
Tim Düsterhus [Thu, 7 Jan 2021 16:13:43 +0000 (17:13 +0100)]
Simplify formatter selection in Date/Picker.ts
Tim Düsterhus [Thu, 7 Jan 2021 14:32:27 +0000 (15:32 +0100)]
Fix typing in TabMenu.ts
Tim Düsterhus [Thu, 7 Jan 2021 14:26:07 +0000 (15:26 +0100)]
Improve type safety of Plural.ts
Tim Düsterhus [Thu, 7 Jan 2021 13:57:53 +0000 (14:57 +0100)]
Various TypeScript fixes detected using noImplicitAny
Matthias Schmidt [Fri, 8 Jan 2021 09:26:58 +0000 (10:26 +0100)]
Apply suggestions from code review
Tim Düsterhus [Fri, 8 Jan 2021 09:08:26 +0000 (10:08 +0100)]
Merge pull request #3857 from WoltLab/commit-message-check
Add pull_request workflow
Tim Düsterhus [Fri, 8 Jan 2021 08:55:18 +0000 (09:55 +0100)]
Add pull_request workflow
Tim Düsterhus [Thu, 7 Jan 2021 15:29:14 +0000 (16:29 +0100)]
Add proper error handling to OAuth2 client
Tim Düsterhus [Thu, 7 Jan 2021 15:09:10 +0000 (16:09 +0100)]
Specify timeout for OAuth 2 requests
Tim Düsterhus [Thu, 7 Jan 2021 13:07:17 +0000 (14:07 +0100)]
Send 403 to spiders accessing the social login
Tim Düsterhus [Thu, 7 Jan 2021 11:43:24 +0000 (12:43 +0100)]
Implement the OAuth 2 providers using AbstractOauth2Action.
Tim Düsterhus [Thu, 7 Jan 2021 11:37:54 +0000 (12:37 +0100)]
Add AbstractOauth2Action
Tim Düsterhus [Thu, 7 Jan 2021 15:07:24 +0000 (16:07 +0100)]
Configure a 60 second timeout for Guzzle by default
This is acting as a safety net, because the default timeout is infinite.