GitHub/WoltLab/WCF.git
2 years agoMerge pull request #4776 from WoltLab/scroll-to-comments
Alexander Ebert [Sun, 8 May 2022 11:29:21 +0000 (13:29 +0200)]
Merge pull request #4776 from WoltLab/scroll-to-comments

Scrolling to a comment not visible by default did not work

2 years agoVisual separator for specialized search filters
Alexander Ebert [Sat, 7 May 2022 16:13:12 +0000 (18:13 +0200)]
Visual separator for specialized search filters

See https://www.woltlab.com/community/thread/295502-kategorie-auswahl-ist-verrutscht/

2 years agoMerge branch '5.4'
Marcel Werk [Sat, 7 May 2022 15:42:08 +0000 (17:42 +0200)]
Merge branch '5.4'

2 years agoMerge branch '5.3' into 5.4
Marcel Werk [Sat, 7 May 2022 15:41:59 +0000 (17:41 +0200)]
Merge branch '5.3' into 5.4

2 years agoMerge branch '5.2' into 5.3
Marcel Werk [Sat, 7 May 2022 15:41:46 +0000 (17:41 +0200)]
Merge branch '5.2' into 5.3

2 years agoRevert "Show always an no selection option in custom select options build with the...
Marcel Werk [Sat, 7 May 2022 15:40:48 +0000 (17:40 +0200)]
Revert "Show always an no selection option in custom select options build with the OptionHandler"

This reverts commit 6fef8b82e15794eee5317e6b15bb0670f137315c.

2 years agoIncorrect margin of `.formSubmit` in dialogs
Alexander Ebert [Sat, 7 May 2022 14:59:03 +0000 (16:59 +0200)]
Incorrect margin of `.formSubmit` in dialogs

This was caused by the negative margin introduced in 1d224f10cdd05e7f5d09f869ee1fbbbdff025749 which caused the calculation to be off by 10px, causing a visible gap.

See https://www.woltlab.com/community/thread/295497-fehlerhafte-mobile-darstellung-von-dialogen/

2 years agoNotification type was not hidden when modules were disabled
Marcel Werk [Fri, 6 May 2022 15:57:21 +0000 (17:57 +0200)]
Notification type was not hidden when modules were disabled

2 years agoScrolling to a comment not visible by default did not work
Marcel Werk [Fri, 6 May 2022 15:49:54 +0000 (17:49 +0200)]
Scrolling to a comment not visible by default did not work

2 years agoInline editors had been not initialized properly
Alexander Ebert [Fri, 6 May 2022 15:27:59 +0000 (17:27 +0200)]
Inline editors had been not initialized properly

2 years agoUnified phrases
Marcel Werk [Fri, 6 May 2022 15:19:44 +0000 (17:19 +0200)]
Unified phrases

2 years agoMerge pull request #4774 from WoltLab/focus-trap-tabbable
Tim Düsterhus [Fri, 6 May 2022 07:20:09 +0000 (09:20 +0200)]
Merge pull request #4774 from WoltLab/focus-trap-tabbable

Update focus-trap and tabbable npm dependencies

2 years agoFix dependency sync check in javascript.yml
Tim Düsterhus [Fri, 6 May 2022 07:17:19 +0000 (09:17 +0200)]
Fix dependency sync check in javascript.yml

2 years agoAdd check that dependencies are in sync to javascript.yml
Tim Düsterhus [Fri, 6 May 2022 07:12:15 +0000 (09:12 +0200)]
Add check that dependencies are in sync to javascript.yml

2 years agoUpdate focus-trap and tabbable npm dependencies
Tim Düsterhus [Thu, 5 May 2022 13:25:48 +0000 (15:25 +0200)]
Update focus-trap and tabbable npm dependencies

2 years agoMerge branch '5.4'
Tim Düsterhus [Thu, 5 May 2022 13:24:11 +0000 (15:24 +0200)]
Merge branch '5.4'

2 years agoUpdate npm dependencies
Tim Düsterhus [Thu, 5 May 2022 13:23:19 +0000 (15:23 +0200)]
Update npm dependencies

2 years agoAdd PHP 8.1 to the php.yml workflow
Tim Düsterhus [Thu, 5 May 2022 12:52:05 +0000 (14:52 +0200)]
Add PHP 8.1 to the php.yml workflow

2 years agoDrop obsolete exclude in php.yml workflow
Tim Düsterhus [Thu, 5 May 2022 12:42:57 +0000 (14:42 +0200)]
Drop obsolete exclude in php.yml workflow

This should no longer be required since 123aedf297e0402e6bd3562fe08e2d74e24760d1.

2 years agoUpdate version constraints in composer.json
Tim Düsterhus [Thu, 5 May 2022 09:04:03 +0000 (11:04 +0200)]
Update version constraints in composer.json

Require the currently locked versions as the minimum versions.

2 years agoMerge pull request #4772 from WoltLab/htmlpurifier-4.14
Tim Düsterhus [Thu, 5 May 2022 07:04:44 +0000 (09:04 +0200)]
Merge pull request #4772 from WoltLab/htmlpurifier-4.14

Update to ezyang/htmlpurifier 4.14.*

2 years agoLabeling for buttons (trash and delete) was identical
Marcel Werk [Wed, 4 May 2022 16:32:08 +0000 (18:32 +0200)]
Labeling for buttons (trash and delete) was identical

2 years agoUpdate to ezyang/htmlpurifier 4.14.*
Tim Düsterhus [Wed, 4 May 2022 15:32:26 +0000 (17:32 +0200)]
Update to ezyang/htmlpurifier 4.14.*

2 years agoSort dependencies in composer.json
Tim Düsterhus [Wed, 4 May 2022 15:26:27 +0000 (17:26 +0200)]
Sort dependencies in composer.json

2 years agoAdd explicit composer dependency for guzzlehttp/psr7
Tim Düsterhus [Wed, 4 May 2022 15:25:13 +0000 (17:25 +0200)]
Add explicit composer dependency for guzzlehttp/psr7

2 years agoRemove validation attributes from __sourceCodeFormField.tpl
Tim Düsterhus [Wed, 4 May 2022 13:27:22 +0000 (15:27 +0200)]
Remove validation attributes from __sourceCodeFormField.tpl

These are not supported with CodeMirror, because it only syncs the entered data
upon `submit()` which notably runs *after* validation.

see codemirror/CodeMirror#5092
Fixes #4732

2 years agoFix typo in function name in AbstractFileDeletePackageInstallationPlugin
Tim Düsterhus [Tue, 3 May 2022 21:36:15 +0000 (23:36 +0200)]
Fix typo in function name in AbstractFileDeletePackageInstallationPlugin

This must be `strtr` not `strstr`.

see #4714

2 years agoLoad the page logo using the `eager` policy
Alexander Ebert [Wed, 4 May 2022 12:34:15 +0000 (14:34 +0200)]
Load the page logo using the `eager` policy

Using `loading="lazy"` for the page logo causes the image to flicker noticeably in Safari on both macOS and iOS.

See https://www.woltlab.com/community/thread/295403-logo-auf-der-startseite-beim-aktualisieren-ein-rechteck/

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 3 May 2022 13:26:36 +0000 (15:26 +0200)]
Merge branch '5.4'

2 years agoMerge pull request #4768 from WoltLab/sitemap-page
Tim Düsterhus [Tue, 3 May 2022 13:07:53 +0000 (15:07 +0200)]
Merge pull request #4768 from WoltLab/sitemap-page

Fix handling of CMS pages in sitemap

2 years agoFix handling of CMS pages in sitemap
Tim Düsterhus [Tue, 3 May 2022 11:57:49 +0000 (13:57 +0200)]
Fix handling of CMS pages in sitemap

Delegate the visibility control and access control to the appropriate methods
in \wcf\data\page\Page instead of reimplementing it from scratch. Most notably
the inversion of the page ACL was not implemented correctly within the sitemap.

see 92fba0538afc1d88f411db1a80553af2d17c09b4
Closes #4767

Co-authored-by: mutec <mysterycode@mysterycode.de>
2 years agoRelease 5.5.0 Alpha 6 5.5.0_Alpha_6
Alexander Ebert [Mon, 2 May 2022 15:27:06 +0000 (17:27 +0200)]
Release 5.5.0 Alpha 6

2 years agoUpdating minified JavaScript files
WoltLab [Mon, 2 May 2022 15:25:33 +0000 (15:25 +0000)]
Updating minified JavaScript files

2 years agoMerge pull request #4764 from WoltLab/content-interaction-button-icons
Alexander Ebert [Mon, 2 May 2022 13:21:13 +0000 (15:21 +0200)]
Merge pull request #4764 from WoltLab/content-interaction-button-icons

Use icons in content interaction buttons

2 years agoAdapt icon dynamically to the actual sort order
Marcel Werk [Mon, 2 May 2022 10:53:35 +0000 (12:53 +0200)]
Adapt icon dynamically to the actual sort order

2 years agoRemoved a superfluous data attribute
Alexander Ebert [Mon, 2 May 2022 08:37:07 +0000 (10:37 +0200)]
Removed a superfluous data attribute

This was a temporary part of the development process.

Fixes #4765

2 years agoMerge pull request #4766 from mutec/appmanmudose
Tim Düsterhus [Mon, 2 May 2022 07:25:38 +0000 (09:25 +0200)]
Merge pull request #4766 from mutec/appmanmudose

fix application management in multi domain setups

2 years agofix application management in multi domain setups
mutec [Sun, 1 May 2022 20:53:53 +0000 (22:53 +0200)]
fix application management in multi domain setups

Changing the landing pages of apps was failing since the domain name for single-domain-setups was validated for any case, but is not set when using a multi-domain-setup.
This lead to an un-meaningful error-message saying something is incorrect.

2 years agoPage change in search results scrolls to top automatically
Marcel Werk [Sun, 1 May 2022 17:54:36 +0000 (19:54 +0200)]
Page change in search results scrolls to top automatically

2 years agoAdded parameter to configure the scroll behavior
Marcel Werk [Sun, 1 May 2022 17:54:24 +0000 (19:54 +0200)]
Added parameter to configure the scroll behavior

2 years agoIncorrect pronoun in article comment notifications
Marcel Werk [Sun, 1 May 2022 17:29:01 +0000 (19:29 +0200)]
Incorrect pronoun in article comment notifications

2 years agoReduced size of form submit buttons (on mobile)
Marcel Werk [Sun, 1 May 2022 12:42:14 +0000 (14:42 +0200)]
Reduced size of form submit buttons (on mobile)

2 years agoSwapped the position of the user and page menu
Alexander Ebert [Sun, 1 May 2022 09:18:03 +0000 (11:18 +0200)]
Swapped the position of the user and page menu

See https://www.woltlab.com/community/thread/295422-position-des-hamburger-men%C3%BCs/

2 years agoUse icons in content interaction buttons
Marcel Werk [Fri, 29 Apr 2022 16:22:52 +0000 (18:22 +0200)]
Use icons in content interaction buttons

2 years agoStop hiding icons in content interaction buttons
Marcel Werk [Fri, 29 Apr 2022 16:22:40 +0000 (18:22 +0200)]
Stop hiding icons in content interaction buttons

2 years agoMerge pull request #4753 from WoltLab/article-timestamp
Marcel Werk [Fri, 29 Apr 2022 15:10:13 +0000 (17:10 +0200)]
Merge pull request #4753 from WoltLab/article-timestamp

Ensures that the date of a published article is not in the future.

2 years agoShow error message if article date is in the future
Marcel Werk [Fri, 29 Apr 2022 14:38:15 +0000 (16:38 +0200)]
Show error message if article date is in the future

2 years agoRelease 5.5.0 Alpha 5 5.5.0_Alpha_5
Alexander Ebert [Fri, 29 Apr 2022 11:31:26 +0000 (13:31 +0200)]
Release 5.5.0 Alpha 5

2 years agoUpdating minified JavaScript files
WoltLab [Fri, 29 Apr 2022 11:30:00 +0000 (11:30 +0000)]
Updating minified JavaScript files

2 years agoMerge pull request #4763 from WoltLab/user-profile-buttons
Alexander Ebert [Fri, 29 Apr 2022 11:18:14 +0000 (13:18 +0200)]
Merge pull request #4763 from WoltLab/user-profile-buttons

Overhauled user profile buttons

2 years agoIgnore connection errors caused by page navigation
Alexander Ebert [Thu, 28 Apr 2022 17:45:12 +0000 (19:45 +0200)]
Ignore connection errors caused by page navigation

See WoltLab/com.woltlab.wbb#539

2 years agoDelay menu interaction until the page is loaded
Alexander Ebert [Thu, 28 Apr 2022 16:30:02 +0000 (18:30 +0200)]
Delay menu interaction until the page is loaded

User menu providers are registered asynchronously and the UI does not know once they are all ready.

See https://www.woltlab.com/community/thread/295264-userpanel-l%C3%A4dt-unvollst%C3%A4ndig/

2 years agoSimplified the code logic
Alexander Ebert [Thu, 28 Apr 2022 14:58:46 +0000 (16:58 +0200)]
Simplified the code logic

2 years agoUse icons to represent the moderation queue types
Alexander Ebert [Thu, 28 Apr 2022 14:09:12 +0000 (16:09 +0200)]
Use icons to represent the moderation queue types

Fixes #4742

2 years agoAdded standalone button for "edit profile"
Marcel Werk [Thu, 28 Apr 2022 14:03:21 +0000 (16:03 +0200)]
Added standalone button for "edit profile"

2 years agoRemoved duplicate link to avatar form
Marcel Werk [Thu, 28 Apr 2022 13:53:12 +0000 (15:53 +0200)]
Removed duplicate link to avatar form

The avatar itself is already linked to the avatar form.

2 years agoUse content interactions button in user profiles (management menu)
Marcel Werk [Thu, 28 Apr 2022 13:47:22 +0000 (15:47 +0200)]
Use content interactions button in user profiles (management menu)

2 years agoUse content interactions button in user profiles (search menu)
Marcel Werk [Thu, 28 Apr 2022 13:43:00 +0000 (15:43 +0200)]
Use content interactions button in user profiles (search menu)

2 years agoMade use of content interaction dropdown in user profiles
Marcel Werk [Thu, 28 Apr 2022 13:28:22 +0000 (15:28 +0200)]
Made use of content interaction dropdown in user profiles

2 years agoMerge pull request #4704 from WoltLab/string-validation
Alexander Ebert [Thu, 28 Apr 2022 13:18:11 +0000 (15:18 +0200)]
Merge pull request #4704 from WoltLab/string-validation

Use is_string to validate strings

2 years agoMerge pull request #4762 from WoltLab/password-cleanup
Tim Düsterhus [Thu, 28 Apr 2022 12:29:15 +0000 (14:29 +0200)]
Merge pull request #4762 from WoltLab/password-cleanup

Cleanup PHPASS password implementations

2 years agoRemove the Google Plus profile field
Alexander Ebert [Thu, 28 Apr 2022 12:28:23 +0000 (14:28 +0200)]
Remove the Google Plus profile field

Fixes #4741

2 years agoDeprecate TPhpass::hash() and TPhpass::needsRehash()
Tim Düsterhus [Thu, 28 Apr 2022 12:20:47 +0000 (14:20 +0200)]
Deprecate TPhpass::hash() and TPhpass::needsRehash()

2 years agoExplicitly implement `Phpass::hash()` and `Phpass::needsRehash()`
Tim Düsterhus [Thu, 28 Apr 2022 12:16:41 +0000 (14:16 +0200)]
Explicitly implement `Phpass::hash()` and `Phpass::needsRehash()`

They don't really belong into the `TPhpass` trait.

2 years agoImplement Drupal8::needsRehash()
Tim Düsterhus [Thu, 28 Apr 2022 12:14:03 +0000 (14:14 +0200)]
Implement Drupal8::needsRehash()

2 years agoMove the Drupal8 costs into a class constant
Tim Düsterhus [Thu, 28 Apr 2022 12:08:12 +0000 (14:08 +0200)]
Move the Drupal8 costs into a class constant

2 years agoDelegate to TPhpass in Drupal8
Tim Düsterhus [Thu, 28 Apr 2022 12:04:02 +0000 (14:04 +0200)]
Delegate to TPhpass in Drupal8

2 years agoUse `\hash('md5', …)` instead of `\md5()` in TPhpass
Tim Düsterhus [Thu, 28 Apr 2022 11:52:48 +0000 (13:52 +0200)]
Use `\hash('md5', …)` instead of `\md5()` in TPhpass

This makes it easier to parameterize the implementation.

2 years agoDelegate base64 encoding for Drupal8 to TPhpass
Tim Düsterhus [Thu, 28 Apr 2022 11:54:50 +0000 (13:54 +0200)]
Delegate base64 encoding for Drupal8 to TPhpass

2 years agoAdd TPhpass::encode64()
Tim Düsterhus [Thu, 28 Apr 2022 11:50:43 +0000 (13:50 +0200)]
Add TPhpass::encode64()

2 years agoMerge branch '5.4'
Tim Düsterhus [Thu, 28 Apr 2022 10:38:03 +0000 (12:38 +0200)]
Merge branch '5.4'

2 years agoAdd the Drupal8 hashing algorithm
Tim Düsterhus [Thu, 28 Apr 2022 10:36:23 +0000 (12:36 +0200)]
Add the Drupal8 hashing algorithm

2 years agoFix the TPhpass algorithm
Tim Düsterhus [Thu, 28 Apr 2022 10:21:19 +0000 (12:21 +0200)]
Fix the TPhpass algorithm

The salt extraction used `mb_strpos` where `mb_substr` needs to be used.

see c586e46e62dd1d714b7c7db7911eb6cf5d96cc7e

2 years agoMerge pull request #4758 from WoltLab/mailbox-filterAddress
Tim Düsterhus [Wed, 27 Apr 2022 13:58:31 +0000 (15:58 +0200)]
Merge pull request #4758 from WoltLab/mailbox-filterAddress

Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct() - Take 2

2 years agoMerge pull request #4760 from WoltLab/unified-mark-as-read-language-variables
Marcel Werk [Wed, 27 Apr 2022 13:51:52 +0000 (15:51 +0200)]
Merge pull request #4760 from WoltLab/unified-mark-as-read-language-variables

Unified language variables for "mark as read" buttons

2 years agoUnified language variables for "mark as read" buttons
Marcel Werk [Wed, 27 Apr 2022 13:41:32 +0000 (15:41 +0200)]
Unified language variables for "mark as read" buttons

2 years agoMerge pull request #4759 from WoltLab/content-interaction-margins
Marcel Werk [Wed, 27 Apr 2022 13:25:07 +0000 (15:25 +0200)]
Merge pull request #4759 from WoltLab/content-interaction-margins

Avoid empty content interaction elements to avoid obsolete margin

2 years agoAvoid empty content interaction elements to avoid obsolete margin
Marcel Werk [Wed, 27 Apr 2022 13:19:06 +0000 (15:19 +0200)]
Avoid empty content interaction elements to avoid obsolete margin

2 years agoDelegate to Mailbox::filterAddress() in UserUtil::isValidEmail()
Tim Düsterhus [Wed, 27 Apr 2022 13:08:19 +0000 (15:08 +0200)]
Delegate to Mailbox::filterAddress() in UserUtil::isValidEmail()

see 1723b426d25ecaad5034a6f74e3b29db25dc1b29

2 years agoAdd Mailbox::filterAddress()
Tim Düsterhus [Wed, 27 Apr 2022 13:07:02 +0000 (15:07 +0200)]
Add Mailbox::filterAddress()

see 1723b426d25ecaad5034a6f74e3b29db25dc1b29

2 years agoAdd explicit support for `*` in excludedPackages in `PackageUpdateAction`
joshuaruesweg [Wed, 27 Apr 2022 13:01:28 +0000 (15:01 +0200)]
Add explicit support for `*` in excludedPackages in `PackageUpdateAction`

Fixes #4736

2 years agoRevert "Unify the email validation of UserUtil::isValidEmail() and Mailbox::__constru...
Tim Düsterhus [Wed, 27 Apr 2022 12:56:56 +0000 (14:56 +0200)]
Revert "Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()"

This change broke WCFSetup, because Mailboxes implicitly carry a language which
is not readily available in WCFSetup.

The validation of the email address should likely be moved into a dedicated
method in Mailbox and then UserUtil::isValidEmail() deprecated.

This reverts commit 395f9a6affffdd5381134d3f9d39b70de453b668.

2 years agoAdded standalone button for "mark as read"
Marcel Werk [Wed, 27 Apr 2022 11:33:46 +0000 (13:33 +0200)]
Added standalone button for "mark as read"

2 years agoRemoved useless RSS feed dialog for notifications
Marcel Werk [Wed, 27 Apr 2022 11:23:57 +0000 (13:23 +0200)]
Removed useless RSS feed dialog for notifications

The option for an anonymous RSS feed does not make sense at this point, as guests do not have access to notifications.

2 years agoMatch stop words case insensitively in MysqlSearchEngine
Tim Düsterhus [Wed, 27 Apr 2022 07:20:17 +0000 (09:20 +0200)]
Match stop words case insensitively in MysqlSearchEngine

2 years agoReplace MysqlSearchEngine::getStopWords() by ::isStopWord()
Tim Düsterhus [Wed, 27 Apr 2022 07:18:47 +0000 (09:18 +0200)]
Replace MysqlSearchEngine::getStopWords() by ::isStopWord()

2 years agoRelease 5.5.0 Alpha 4 5.5.0_Alpha_4
Alexander Ebert [Tue, 26 Apr 2022 13:53:10 +0000 (15:53 +0200)]
Release 5.5.0 Alpha 4

2 years agoUpdating minified JavaScript files
WoltLab [Tue, 26 Apr 2022 13:42:57 +0000 (13:42 +0000)]
Updating minified JavaScript files

2 years agoMerge pull request #4757 from WoltLab/visit-tracker
Tim Düsterhus [Tue, 26 Apr 2022 13:25:55 +0000 (15:25 +0200)]
Merge pull request #4757 from WoltLab/visit-tracker

Improve VisitTracker behavior

2 years agoRemove support for object specific lifetimes in VisitTracker
Tim Düsterhus [Tue, 26 Apr 2022 13:21:10 +0000 (15:21 +0200)]
Remove support for object specific lifetimes in VisitTracker

2 years agoFix cleaning of tracked visits in DailyCleanUpCronjob
Tim Düsterhus [Tue, 26 Apr 2022 12:44:27 +0000 (14:44 +0200)]
Fix cleaning of tracked visits in DailyCleanUpCronjob

This part of the cronjob never was functional, because stored visitTime was
compared to the lifetime which could only ever match near the start of the unix
epoch.

Fix this by correctly subtracting the lifetime from the current timestamp. I've
opted to use 120 days as the cleanup lifetime, as this allows one to adjust the
DEFAULT_LIFETIME gracefully.

2 years agoSimplify VisitTracker::getVisitTime()
Tim Düsterhus [Tue, 26 Apr 2022 12:30:33 +0000 (14:30 +0200)]
Simplify VisitTracker::getVisitTime()

2 years agoRemove the intransparent doubling of the visit tracker lifetime if existing data...
Tim Düsterhus [Tue, 26 Apr 2022 12:23:17 +0000 (14:23 +0200)]
Remove the intransparent doubling of the visit tracker lifetime if existing data exists

In case of com.woltlab.wbb this only triggers if and only if a user *ever*
marked all boards as read. With the increase of the default lifetime in the
previous commit it becomes obsolete.

2 years agoIncrease VisitTracker::DEFAULT_LIFETIME to 31 days
Tim Düsterhus [Tue, 26 Apr 2022 12:22:24 +0000 (14:22 +0200)]
Increase VisitTracker::DEFAULT_LIFETIME to 31 days

see 0fb222af73eab6621c62c5bd4403bdf7330bfad8

2 years agoUse constant expression for VisitTracker::DEFAULT_LIFETIME
Tim Düsterhus [Tue, 26 Apr 2022 12:22:05 +0000 (14:22 +0200)]
Use constant expression for VisitTracker::DEFAULT_LIFETIME

2 years agoEnforce equal heights of all buttons
Alexander Ebert [Tue, 26 Apr 2022 11:19:52 +0000 (13:19 +0200)]
Enforce equal heights of all buttons

See https://www.woltlab.com/community/thread/295373-buttons-unterschiedlich-gro%C3%9F-wenn-pagination-aktiv/

2 years agoRephrased the button to set up notifications
Alexander Ebert [Tue, 26 Apr 2022 11:15:54 +0000 (13:15 +0200)]
Rephrased the button to set up notifications

See https://www.woltlab.com/community/thread/295368-desktop-benachrichtigungen-aktivieren-pr%C3%A4ferenzen-festlegen-falsch/

2 years agoMerge pull request #4756 from WoltLab/user-util-is-valid-email
Tim Düsterhus [Tue, 26 Apr 2022 08:51:02 +0000 (10:51 +0200)]
Merge pull request #4756 from WoltLab/user-util-is-valid-email

Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()

2 years agoUnify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()
Tim Düsterhus [Tue, 26 Apr 2022 07:08:09 +0000 (09:08 +0200)]
Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()

2 years agoPasting code into a code box caused duplicates
Alexander Ebert [Mon, 25 Apr 2022 17:24:37 +0000 (19:24 +0200)]
Pasting code into a code box caused duplicates