diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml index 2bd5b6cfb..9a5dc4ffe 100644 --- a/.github/workflows/phpunit-mysql.yml +++ b/.github/workflows/phpunit-mysql.yml @@ -58,8 +58,9 @@ jobs: - name: Enable ONLY_FULL_GROUP_BY MySQL option run: | - echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword - echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword + sleep 5 + echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -w -u root -prootpassword + echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -w -u root -prootpassword - name: Checkout server uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 diff --git a/lib/Listener/UserDeletedListener.php b/lib/Listener/UserDeletedListener.php index 5c31f04db..7701fd27e 100644 --- a/lib/Listener/UserDeletedListener.php +++ b/lib/Listener/UserDeletedListener.php @@ -5,6 +5,7 @@ /** * @copyright Copyright (c) 2020, Daniel Kesselberg * + * @author Joas Schilling * @author Daniel Kesselberg * * @license AGPL-3.0-or-later @@ -27,6 +28,7 @@ namespace OCA\Notifications\Listener; use OCA\Notifications\Handler; +use OCA\Notifications\Model\SettingsMapper; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; use OCP\User\Events\UserDeletedEvent; @@ -36,9 +38,14 @@ */ class UserDeletedListener implements IEventListener { private Handler $handler; + private SettingsMapper $settingsMapper; - public function __construct(Handler $handler) { + public function __construct( + Handler $handler, + SettingsMapper $settingsMapper, + ) { $this->handler = $handler; + $this->settingsMapper = $settingsMapper; } public function handle(Event $event): void { @@ -49,5 +56,6 @@ public function handle(Event $event): void { $user = $event->getUser(); $this->handler->deleteByUser($user->getUID()); + $this->settingsMapper->deleteSettingsByUser($user->getUID()); } } diff --git a/lib/Model/SettingsMapper.php b/lib/Model/SettingsMapper.php index 58c199221..70f8c2a09 100644 --- a/lib/Model/SettingsMapper.php +++ b/lib/Model/SettingsMapper.php @@ -61,6 +61,19 @@ public function getSettingsByUser(string $userId): Settings { return $this->findEntity($query); } + /** + * @param string $userId + * @throws DBException + */ + public function deleteSettingsByUser(string $userId): void { + $query = $this->db->getQueryBuilder(); + + $query->delete($this->getTableName()) + ->where($query->expr()->eq('user_id', $query->createNamedParameter($userId))); + + $query->executeStatement(); + } + public function setBatchSettingForUser(string $userId, int $batchSetting): void { try { $settings = $this->getSettingsByUser($userId);