diff --git a/3rdparty b/3rdparty index 3cf032e9481..4a0dc8066bd 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 3cf032e948177e2dba40a828aa67d35175cf4bcd +Subproject commit 4a0dc8066bde4ca5641a740e304f9a5403a5952e diff --git a/lib/private/Authentication/TwoFactorAuth/Registry.php b/lib/private/Authentication/TwoFactorAuth/Registry.php index 2f905441953..791e9eb9954 100644 --- a/lib/private/Authentication/TwoFactorAuth/Registry.php +++ b/lib/private/Authentication/TwoFactorAuth/Registry.php @@ -30,20 +30,19 @@ use OC\Authentication\TwoFactorAuth\Db\ProviderUserAssignmentDao; use OCP\Authentication\TwoFactorAuth\IProvider; use OCP\Authentication\TwoFactorAuth\IRegistry; use OCP\Authentication\TwoFactorAuth\RegistryEvent; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IUser; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\GenericEvent; class Registry implements IRegistry { /** @var ProviderUserAssignmentDao */ private $assignmentDao; - /** @var EventDispatcherInterface */ + /** @var IEventDispatcher */ private $dispatcher; public function __construct(ProviderUserAssignmentDao $assignmentDao, - EventDispatcherInterface $dispatcher) { + IEventDispatcher $dispatcher) { $this->assignmentDao = $assignmentDao; $this->dispatcher = $dispatcher; } diff --git a/lib/public/EventDispatcher/Event.php b/lib/public/EventDispatcher/Event.php index 7f8554d7a86..368f352292e 100644 --- a/lib/public/EventDispatcher/Event.php +++ b/lib/public/EventDispatcher/Event.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace OCP\EventDispatcher; -use Symfony\Component\EventDispatcher\GenericEvent; +use Symfony\Contracts\EventDispatcher\Event as SymfonyEvent; /** * Base event class for the event dispatcher service @@ -35,6 +35,20 @@ use Symfony\Component\EventDispatcher\GenericEvent; * * @since 17.0.0 */ -class Event extends GenericEvent { +class Event extends SymfonyEvent { + + /** + * Compatibility constructor + * + * In Nextcloud 17.0.0 this event class used a now deprecated/removed Symfony base + * class that had a constructor (with default arguments). To lower the risk of + * a breaking change (PHP won't allow parent constructor calls if there is none), + * this empty constructor's only purpose is to hopefully not break existing sub- + * classes of this class. + * + * @since 18.0.0 + */ + public function __construct() { + } } diff --git a/lib/public/Security/CSP/AddContentSecurityPolicyEvent.php b/lib/public/Security/CSP/AddContentSecurityPolicyEvent.php index 9bf1d57e77e..9c48f4038d8 100644 --- a/lib/public/Security/CSP/AddContentSecurityPolicyEvent.php +++ b/lib/public/Security/CSP/AddContentSecurityPolicyEvent.php @@ -40,6 +40,7 @@ class AddContentSecurityPolicyEvent extends Event { * @since 17.0.0 */ public function __construct(ContentSecurityPolicyManager $policyManager) { + parent::__construct(); $this->policyManager = $policyManager; } diff --git a/lib/public/Security/FeaturePolicy/AddFeaturePolicyEvent.php b/lib/public/Security/FeaturePolicy/AddFeaturePolicyEvent.php index ab93844c3f8..e840f910769 100644 --- a/lib/public/Security/FeaturePolicy/AddFeaturePolicyEvent.php +++ b/lib/public/Security/FeaturePolicy/AddFeaturePolicyEvent.php @@ -40,6 +40,7 @@ class AddFeaturePolicyEvent extends Event { * @since 17.0.0 */ public function __construct(FeaturePolicyManager $policyManager) { + parent::__construct(); $this->policyManager = $policyManager; } diff --git a/tests/lib/Authentication/TwoFactorAuth/RegistryTest.php b/tests/lib/Authentication/TwoFactorAuth/RegistryTest.php index 08498738fa1..ad29377e559 100644 --- a/tests/lib/Authentication/TwoFactorAuth/RegistryTest.php +++ b/tests/lib/Authentication/TwoFactorAuth/RegistryTest.php @@ -1,4 +1,4 @@ - @@ -29,27 +29,27 @@ use OC\Authentication\TwoFactorAuth\Registry; use OCP\Authentication\TwoFactorAuth\IProvider; use OCP\Authentication\TwoFactorAuth\IRegistry; use OCP\Authentication\TwoFactorAuth\RegistryEvent; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IUser; -use PHPUnit_Framework_MockObject_MockObject; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class RegistryTest extends TestCase { - /** @var ProviderUserAssignmentDao|PHPUnit_Framework_MockObject_MockObject */ + /** @var ProviderUserAssignmentDao|MockObject */ private $dao; + /** @var IEventDispatcher|MockObject */ + private $dispatcher; + /** @var Registry */ private $registry; - /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ - private $dispatcher; - protected function setUp() { parent::setUp(); $this->dao = $this->createMock(ProviderUserAssignmentDao::class); - $this->dispatcher = $this->createMock(EventDispatcherInterface::class); + $this->dispatcher = $this->createMock(IEventDispatcher::class); $this->registry = new Registry($this->dao, $this->dispatcher); }