GitHub/WoltLab/WCF.git
4 years agoFixes exception when not using primary PayPal email
Sir-Will [Tue, 28 Jul 2020 00:57:32 +0000 (02:57 +0200)]
Fixes exception when not using primary PayPal email

PayPal allows adding multiple emails, if you are using one of the alternative emails instead of the primary email then WoltLab will throw the exception.
The `receiver_email` is always the primary email while `business` is the secondary in the IPN.

4 years agoMoved the remark on the cleanup script
Alexander Ebert [Sat, 18 Jul 2020 13:29:14 +0000 (15:29 +0200)]
Moved the remark on the cleanup script

4 years agoMerge pull request #3450 from WoltLab/cms-embedded-object-remove
Alexander Ebert [Sat, 18 Jul 2020 13:28:13 +0000 (15:28 +0200)]
Merge pull request #3450 from WoltLab/cms-embedded-object-remove

Removed embedded object references when deleting articles / pages

4 years agoAdd update_com.woltlab.wcf_embeddedObjectOrphans.php
Tim Düsterhus [Fri, 17 Jul 2020 12:12:28 +0000 (14:12 +0200)]
Add update_com.woltlab.wcf_embeddedObjectOrphans.php

4 years agoAdd note about deletion of orphaned embedded objects
Tim Düsterhus [Fri, 17 Jul 2020 09:36:44 +0000 (11:36 +0200)]
Add note about deletion of orphaned embedded objects

see #3429

4 years agoRemove embedded object references when deleting pages
Tim Düsterhus [Fri, 17 Jul 2020 09:32:27 +0000 (11:32 +0200)]
Remove embedded object references when deleting pages

see #3429

4 years agoRemove embedded object references when deleting articles
Tim Düsterhus [Fri, 17 Jul 2020 09:25:24 +0000 (11:25 +0200)]
Remove embedded object references when deleting articles

see #3429

4 years agoFix PHP 5.5 compatibility
Tim Düsterhus [Thu, 16 Jul 2020 09:25:48 +0000 (11:25 +0200)]
Fix PHP 5.5 compatibility

4 years agoFix copy and paste bug
Tim Düsterhus [Thu, 16 Jul 2020 09:24:05 +0000 (11:24 +0200)]
Fix copy and paste bug

see 3cd8f5f63c1327c1534a4e24908b3e49d4074871

4 years agoProperly update page search index when editing
Tim Düsterhus [Thu, 16 Jul 2020 08:41:09 +0000 (10:41 +0200)]
Properly update page search index when editing

see #3430

4 years agoProperly update article search index when editing
Tim Düsterhus [Thu, 16 Jul 2020 08:40:38 +0000 (10:40 +0200)]
Properly update article search index when editing

see #3430

4 years agoImproved detection of the links to twitch's clips
Marcel Werk [Tue, 14 Jul 2020 17:09:26 +0000 (19:09 +0200)]
Improved detection of the links to twitch's clips

4 years agoRelease 3.1.16 3.1.16
Alexander Ebert [Mon, 13 Jul 2020 10:59:02 +0000 (12:59 +0200)]
Release 3.1.16

4 years agoPrevent Chromium browser form injecting base64 encoded images
Alexander Ebert [Thu, 9 Jul 2020 19:08:44 +0000 (21:08 +0200)]
Prevent Chromium browser form injecting base64 encoded images

4 years agoMerge pull request #3439 from WoltLab/cronjob-fix2
Tim Düsterhus [Tue, 7 Jul 2020 13:07:09 +0000 (15:07 +0200)]
Merge pull request #3439 from WoltLab/cronjob-fix2

Fix calculation of nextExec of cronjobs

4 years agoFix calculation of nextExec of cronjobs
Tim Düsterhus [Tue, 7 Jul 2020 12:26:20 +0000 (14:26 +0200)]
Fix calculation of nextExec of cronjobs

To properly calculate nextExec we must not specify the TIME_NOW parameter,
because if the cronjob is run on the scheduled time the nextExec() will
return the current time.

Not passing the TIME_NOW parameter adds at least 120 seconds of delay to
prevent this issue.

This bug was introduced in commit 485f8e1888824b862823de983e019afcb9bca7ce.
When moving the update of the execution time the calls were not correctly
moved and the explicit passing of TIME_NOW was added.

4 years agoMerge pull request #3428 from WoltLab/url-is
Tim Düsterhus [Mon, 6 Jul 2020 15:20:12 +0000 (17:20 +0200)]
Merge pull request #3428 from WoltLab/url-is

Fix Url::is()

4 years agoMerge pull request #3432 from WoltLab/linked-blocked-img
Tim Düsterhus [Fri, 3 Jul 2020 13:53:39 +0000 (15:53 +0200)]
Merge pull request #3432 from WoltLab/linked-blocked-img

Fix markup for linked, blocked images in UGC

4 years agoFix markup for linked, blocked images in UGC
Tim Düsterhus [Fri, 3 Jul 2020 13:10:38 +0000 (15:10 +0200)]
Fix markup for linked, blocked images in UGC

Fixes #3384

4 years agoFix Url::is()
Tim Düsterhus [Thu, 2 Jul 2020 14:40:16 +0000 (16:40 +0200)]
Fix Url::is()

`parse_url()` cannot be used to validate an URL, because it will accept
roughly everything. In fact this is documented in the parse_url() docs:

> This function is not meant to validate the given URL, it only breaks
> it up into the above listed parts. Partial URLs are also accepted,
> parse_url() tries its best to parse them correctly.

Fixes #3391

4 years agoMerge pull request #3418 from WoltLab/cronjob-fix
Alexander Ebert [Wed, 1 Jul 2020 09:15:01 +0000 (11:15 +0200)]
Merge pull request #3418 from WoltLab/cronjob-fix

Fix detection of stuck cronjobs

4 years agoGet rid of useless class attribute CronjobScheduler::$cronjobEditors
Tim Düsterhus [Tue, 30 Jun 2020 12:16:42 +0000 (14:16 +0200)]
Get rid of useless class attribute CronjobScheduler::$cronjobEditors

Just use a simple return value here. It avoids having to carefully manage
class state.

4 years agoFix detection of stuck cronjobs
Tim Düsterhus [Tue, 30 Jun 2020 12:15:03 +0000 (14:15 +0200)]
Fix detection of stuck cronjobs

Consider the following scenario:

A cronjob is scheduled to run `0 * * * *` (i.e. every hour). The cronjob
successfully executes it's 23:00 execution belated on 23:30. Then the
nextExec will be 00:00. afterNextExec will be 01:00.

During night time nothing happens within the community, until at 05:xx when
the first user wakes up and opens their web browser. It restores two tabs
with our community and fetches them. Now the following will happen:

1. Request 1: Notices that the cronjob is due (00:00 < 05:xx). Setting
              the cronjob's state to pending and starting execution.
2. Request 2: Notices that the cronjob is overdue (01:00 < 05:xx,
              state = pending). Logging an error about a stuck job and
              setting the cronjob's state to ready.
3. Request 1: Finishes executing the cronjob and updates nextExec = 06:00,
              afterNextExec = 07:00, also setting the cronjob's state to
              ready.

Fix this issue by updating the times for the next executions together with
the update of the state in a single database query / transaction. This will
prevent other requests from seeing the cronjob with state = pending or
state = executing and an way outdated date.

A side effect of this change is that cronjobs will match the intended
schedule better.

Consider the following:

A cronjob running every minute, taking 5 seconds to execute. The execution
is triggered at 00:00:58. It will finish executing 00:01:03. Previously the
nextExec would be set to 00:02:00, now it will be 00:01:00. Thus the first
request after 00:01:03 (i.e. once the state is set back to ready) will
trigger execution, more closely matching the intended schedule.

4 years agoImprove error message for stuck cronjobs
Tim Düsterhus [Tue, 30 Jun 2020 12:07:51 +0000 (14:07 +0200)]
Improve error message for stuck cronjobs

4 years agoHide empty tag box on tagged page
Matthias Schmidt [Sun, 28 Jun 2020 12:35:35 +0000 (14:35 +0200)]
Hide empty tag box on tagged page

4 years agoRelease 3.1.15 3.1.15
Alexander Ebert [Sat, 27 Jun 2020 10:54:23 +0000 (12:54 +0200)]
Release 3.1.15

4 years agoUpdating minified JavaScript files
woltlab.com [Sat, 27 Jun 2020 09:58:45 +0000 (09:58 +0000)]
Updating minified JavaScript files

4 years agoMerge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:56:53 +0000 (11:56 +0200)]
Merge branch '3.0' into 3.1

4 years agoPreparing the release 3.0.25 3.0.25
Alexander Ebert [Sat, 27 Jun 2020 09:52:48 +0000 (11:52 +0200)]
Preparing the release 3.0.25

4 years agoRevert "Preparing the release 3.1.15"
Alexander Ebert [Sat, 27 Jun 2020 09:51:15 +0000 (11:51 +0200)]
Revert "Preparing the release 3.1.15"

This reverts commit bd4d9de5fc28d17643c109fc87ae88f2d9265817.

4 years agoPreparing the release 3.1.15
Alexander Ebert [Sat, 27 Jun 2020 09:50:30 +0000 (11:50 +0200)]
Preparing the release 3.1.15

4 years agoIncorrect encoding of conditions
Alexander Ebert [Sat, 27 Jun 2020 09:41:29 +0000 (11:41 +0200)]
Incorrect encoding of conditions

4 years agoMerge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:40:49 +0000 (11:40 +0200)]
Merge branch '3.0' into 3.1

4 years agoIncorrect encoding of conditions
Alexander Ebert [Sat, 27 Jun 2020 09:39:05 +0000 (11:39 +0200)]
Incorrect encoding of conditions

4 years agoFixed 'data too long for column username' issue
Marcel Werk [Thu, 25 Jun 2020 09:03:06 +0000 (11:03 +0200)]
Fixed 'data too long for column username' issue

4 years agoArticle image did not always have the right content language
Marcel Werk [Tue, 23 Jun 2020 15:37:07 +0000 (17:37 +0200)]
Article image did not always have the right content language

4 years agoFixed 'Prepared statement contains too many placeholders' error in bulk processing
Marcel Werk [Tue, 23 Jun 2020 10:03:01 +0000 (12:03 +0200)]
Fixed 'Prepared statement contains too many placeholders' error in bulk processing

4 years agoMessage with the content "0" led to empty entries in recent activities
Marcel Werk [Mon, 22 Jun 2020 22:02:56 +0000 (00:02 +0200)]
Message with the content "0" led to empty entries in recent activities

4 years agoMerge pull request #3368 from WoltLab/twitch-bbcode-fix
Marcel Werk [Mon, 15 Jun 2020 16:22:59 +0000 (18:22 +0200)]
Merge pull request #3368 from WoltLab/twitch-bbcode-fix

Fixed broken twitch bbcode

4 years agoApplied code suggestions
Marcel Werk [Mon, 15 Jun 2020 16:14:40 +0000 (18:14 +0200)]
Applied code suggestions

4 years agoFixed broken twitch bbcode
Marcel Werk [Sun, 14 Jun 2020 16:32:26 +0000 (18:32 +0200)]
Fixed broken twitch bbcode

Embedding now requires the new 'parent' parameter

4 years agoFix sitemaps added multiple times in index file
joshuaruesweg [Thu, 11 Jun 2020 19:06:06 +0000 (21:06 +0200)]
Fix sitemaps added multiple times in index file

4 years agoFixed bug with multiple comment widgets on a single page
Marcel Werk [Wed, 10 Jun 2020 18:10:23 +0000 (20:10 +0200)]
Fixed bug with multiple comment widgets on a single page

4 years agoTypo
Alexander Ebert [Tue, 9 Jun 2020 12:08:14 +0000 (14:08 +0200)]
Typo

4 years agoTemplate event for reported user profiles
Alexander Ebert [Wed, 3 Jun 2020 16:18:01 +0000 (18:18 +0200)]
Template event for reported user profiles

4 years agoMerge branch '3.0' into 3.1
Tim Düsterhus [Wed, 3 Jun 2020 10:19:11 +0000 (12:19 +0200)]
Merge branch '3.0' into 3.1

4 years agoMerge pull request #3342 from Krymonota/remove-obsolete-user-signature-properties
Tim Düsterhus [Tue, 2 Jun 2020 17:02:42 +0000 (19:02 +0200)]
Merge pull request #3342 from Krymonota/remove-obsolete-user-signature-properties

Remove obsolete signature properties documentation

4 years agoRemove obsolete signature properties documentation
Niklas (Krymonota) [Sat, 30 May 2020 17:31:46 +0000 (19:31 +0200)]
Remove obsolete signature properties documentation

See bc7adcda6be815367889eaa8cdecf851119009e4 and 291e9fe55c71023bdf3f18565be1c3ae098f77c6

4 years agoImproved notifications for expiring paid subscriptions
Marcel Werk [Fri, 29 May 2020 18:49:30 +0000 (20:49 +0200)]
Improved notifications for expiring paid subscriptions

4 years agoMerge pull request #3337 from Krymonota/patch-10
Alexander Ebert [Tue, 26 May 2020 21:59:58 +0000 (23:59 +0200)]
Merge pull request #3337 from Krymonota/patch-10

Log invalid receiver email in PayPal callback

4 years agoFixed issue caused by an invalid default value for date user options
Marcel Werk [Tue, 26 May 2020 10:32:45 +0000 (12:32 +0200)]
Fixed issue caused by an invalid default value for date user options

4 years agoRemove font-size from trophy images
joshuaruesweg [Tue, 26 May 2020 09:29:07 +0000 (11:29 +0200)]
Remove font-size from trophy images

4 years agoAdd missing long class for user trophy description
joshuaruesweg [Tue, 26 May 2020 09:10:37 +0000 (11:10 +0200)]
Add missing long class for user trophy description

4 years agoFix symlink issue during synchronisation of file pip
joshuaruesweg [Tue, 26 May 2020 09:01:11 +0000 (11:01 +0200)]
Fix symlink issue during synchronisation of file pip

4 years agoLog invalid receiver email in PayPal callback
Niklas (Krymonota) [Mon, 25 May 2020 15:43:08 +0000 (17:43 +0200)]
Log invalid receiver email in PayPal callback

This adjustment should make it easier for administrators to identify the cause of this exception.

4 years agoIncorrect import in PHP 5.5
Alexander Ebert [Sun, 24 May 2020 19:38:15 +0000 (21:38 +0200)]
Incorrect import in PHP 5.5

4 years agoIgnore tainted apps for the landing page
Alexander Ebert [Sun, 24 May 2020 19:26:59 +0000 (21:26 +0200)]
Ignore tainted apps for the landing page

See #3332

4 years agoBackport of CVE-2019-11358
Alexander Ebert [Sat, 23 May 2020 20:12:44 +0000 (22:12 +0200)]
Backport of CVE-2019-11358

4 years agoMerge branch '3.0' into 3.1
Alexander Ebert [Sat, 23 May 2020 20:11:16 +0000 (22:11 +0200)]
Merge branch '3.0' into 3.1

4 years agoBackport of CVE-2019-11358
Alexander Ebert [Sat, 23 May 2020 20:10:54 +0000 (22:10 +0200)]
Backport of CVE-2019-11358

See #3159

4 years agoFixed wrong cli command
Marcel Werk [Sat, 23 May 2020 17:37:45 +0000 (19:37 +0200)]
Fixed wrong cli command

4 years agoMerge branch 'Krymonota-fix-en-interval-full-past-insentence' into 3.1
Tim Düsterhus [Thu, 21 May 2020 23:50:19 +0000 (01:50 +0200)]
Merge branch 'Krymonota-fix-en-interval-full-past-insentence' into 3.1

4 years agoRemove unnecessary conditions in wcf.date.interval.full.past.inSentence
Niklas [Thu, 21 May 2020 23:37:54 +0000 (01:37 +0200)]
Remove unnecessary conditions in wcf.date.interval.full.past.inSentence

4 years agoFix day in wcf.date.interval.full.past.inSentence
Niklas [Fri, 24 Jan 2020 16:30:31 +0000 (17:30 +0100)]
Fix day in wcf.date.interval.full.past.inSentence

e. g. "day, an hour and 49 minutes ago" -> "a day, an hour and 49 minutes ago"

Closes #3142

4 years agoImplement StringUtil::getRandomID() using PasswordUtil::getRandomPassword()
Tim Düsterhus [Wed, 20 May 2020 13:05:54 +0000 (15:05 +0200)]
Implement StringUtil::getRandomID() using PasswordUtil::getRandomPassword()

see 2ca6835c56fd478b8a685bcf2be72245a8231c37
Closes #3262

4 years agoFix column classes in menuList template (#3313)
Niklas [Sun, 17 May 2020 15:16:39 +0000 (17:16 +0200)]
Fix column classes in menuList template (#3313)

4 years agoFix column classes in boxList template (#3312)
Niklas [Sun, 17 May 2020 15:15:46 +0000 (17:15 +0200)]
Fix column classes in boxList template (#3312)

* Fix ID column name in boxList.tpl

* Add missing columnID class

4 years agoMerge pull request #3306 from WoltLab/editorconfig
Joshua Rüsweg [Sun, 17 May 2020 14:17:10 +0000 (16:17 +0200)]
Merge pull request #3306 from WoltLab/editorconfig

Add .editorconfig file

4 years agoAdd .editorconfig file
joshuaruesweg [Fri, 15 May 2020 15:05:52 +0000 (17:05 +0200)]
Add .editorconfig file

4 years agoerrors while executing cronjobs were missing in the global error log
Marcel Werk [Thu, 14 May 2020 18:44:28 +0000 (20:44 +0200)]
errors while executing cronjobs were missing in the global error log

4 years agoFix typo in CustomOption PHPDoc (#3303)
Niklas [Tue, 12 May 2020 14:38:36 +0000 (16:38 +0200)]
Fix typo in CustomOption PHPDoc (#3303)

4 years agoDeploy the cleanup script first 3.1.14
Alexander Ebert [Sun, 10 May 2020 19:56:13 +0000 (21:56 +0200)]
Deploy the cleanup script first

4 years agoUpdating minified JavaScript files
woltlab.com [Sun, 10 May 2020 18:33:15 +0000 (18:33 +0000)]
Updating minified JavaScript files

4 years agoRelease 3.1.14
Alexander Ebert [Sun, 10 May 2020 18:31:43 +0000 (20:31 +0200)]
Release 3.1.14

4 years agoForced redeployment of some files
Alexander Ebert [Sun, 10 May 2020 18:25:21 +0000 (20:25 +0200)]
Forced redeployment of some files

4 years agoMerge pull request #3293 from WoltLab/filereader-filename
Alexander Ebert [Fri, 8 May 2020 18:06:18 +0000 (20:06 +0200)]
Merge pull request #3293 from WoltLab/filereader-filename

Fix charset of the 'filename' field within the Content-disposition he…

4 years agoFix charset of the 'filename' field within the Content-disposition header of FileReader
Tim Düsterhus [Fri, 8 May 2020 12:55:59 +0000 (14:55 +0200)]
Fix charset of the 'filename' field within the Content-disposition header of FileReader

The regular 'filename' field must not contain non-ASCII characters.
Specifically UTF-8 characters are reported to be improperly interpreted as
ISO-8859 in Safari.

Fix by following the guidelines outlined in RFC 5987.

4 years agoFixed deletion of old moderation queue entries
Marcel Werk [Wed, 6 May 2020 23:44:07 +0000 (01:44 +0200)]
Fixed deletion of old moderation queue entries

4 years agoIncorrect return value for an empty list of likes
Marcel Werk [Wed, 6 May 2020 18:43:36 +0000 (20:43 +0200)]
Incorrect return value for an empty list of likes

4 years agoAdd missing space in language item
Matthias Schmidt [Wed, 6 May 2020 17:50:00 +0000 (19:50 +0200)]
Add missing space in language item

4 years agoFixed detection of the JSON content-type
Marcel Werk [Wed, 6 May 2020 16:57:53 +0000 (18:57 +0200)]
Fixed detection of the JSON content-type

4 years agoPhrasing unified
Marcel Werk [Tue, 5 May 2020 18:46:44 +0000 (20:46 +0200)]
Phrasing unified

Kontaktformular vs. Kontakt-Formular

4 years agoHandling of mixed vanilla/jQuery elements
Alexander Ebert [Mon, 4 May 2020 23:20:40 +0000 (01:20 +0200)]
Handling of mixed vanilla/jQuery elements

4 years agoFixed text positioning issue
Marcel Werk [Sun, 3 May 2020 20:31:18 +0000 (22:31 +0200)]
Fixed text positioning issue

4 years agoDevtools sync: `option` before `file`
Alexander Ebert [Sat, 2 May 2020 21:47:50 +0000 (23:47 +0200)]
Devtools sync: `option` before `file`

4 years agoFixed encoding in notification emails for moderation queue comments
Marcel Werk [Fri, 1 May 2020 15:31:58 +0000 (17:31 +0200)]
Fixed encoding in notification emails for moderation queue comments

4 years agoIncorrect handling of the non initialized user menu on resolution change
Alexander Ebert [Thu, 30 Apr 2020 15:32:25 +0000 (17:32 +0200)]
Incorrect handling of the non initialized user menu on resolution change

4 years agoWorkaround for clicks after scrolling in iOS 13
Alexander Ebert [Tue, 28 Apr 2020 19:02:34 +0000 (21:02 +0200)]
Workaround for clicks after scrolling in iOS 13

4 years agoWorkaround for Safari's forced use of page caches on navigation
Alexander Ebert [Tue, 28 Apr 2020 15:04:42 +0000 (17:04 +0200)]
Workaround for Safari's forced use of page caches on navigation

4 years agoPrecise check for ImageMagick
Alexander Ebert [Tue, 28 Apr 2020 11:33:13 +0000 (13:33 +0200)]
Precise check for ImageMagick

The previous check was inaccurate, because it did not consider improperly configured environments that have selected ImageMagick, but did not provide it.

4 years agoMerge pull request #3215 from WoltLab/storageHandler
Joshua Rüsweg [Sat, 25 Apr 2020 17:01:17 +0000 (19:01 +0200)]
Merge pull request #3215 from WoltLab/storageHandler

Fix return values in the UserStorageHandler for modified fields unloa…

4 years ago"search for updates" button is missing if user cannot install packages
Marcel Werk [Sun, 19 Apr 2020 22:08:14 +0000 (00:08 +0200)]
"search for updates" button is missing if user cannot install packages

4 years agoFixed typo
Marcel Werk [Fri, 17 Apr 2020 17:15:04 +0000 (19:15 +0200)]
Fixed typo

4 years agoIncorrect orientation of images rotated with ImageMagick
Alexander Ebert [Fri, 17 Apr 2020 16:08:53 +0000 (18:08 +0200)]
Incorrect orientation of images rotated with ImageMagick

4 years agoFix grammar
Joshua Rüsweg [Fri, 17 Apr 2020 14:12:40 +0000 (16:12 +0200)]
Fix grammar

Co-Authored-By: Alexander Ebert <ebert@woltlab.com>
4 years agoFix return values in the UserStorageHandler for modified fields unloaded users
joshuaruesweg [Fri, 17 Apr 2020 13:49:34 +0000 (15:49 +0200)]
Fix return values in the UserStorageHandler for modified fields unloaded users
Currently the UserStorageHandler returns obsolete values if the value is deleted/updated before the user object is cached.

4 years agoLabel selection missing in pagination of the article list
Marcel Werk [Thu, 16 Apr 2020 14:20:14 +0000 (16:20 +0200)]
Label selection missing in pagination of the article list

Closes #3213

4 years agoFix incorrect assignment of user trophies, with duplicates of one user trophy
joshuaruesweg [Thu, 16 Apr 2020 12:05:42 +0000 (14:05 +0200)]
Fix incorrect assignment of user trophies, with duplicates of one user trophy
See https://community.woltlab.com/thread/282933-automatische-vergabe-bei-bedingung-hat-troph%C3%A4e-x-und-y-fehlerhaft/

4 years agoMerge branch '3.0' into 3.1
Marcel Werk [Tue, 14 Apr 2020 22:45:50 +0000 (00:45 +0200)]
Merge branch '3.0' into 3.1

4 years agoFixed incorrect title when editing menu entries
Marcel Werk [Tue, 14 Apr 2020 22:45:31 +0000 (00:45 +0200)]
Fixed incorrect title when editing menu entries