From 5cb5944994cb49a18fe48ac14a997818983e8c39 Mon Sep 17 00:00:00 2001 From: Thomas Hackl <hackl@data-quest.de> Date: Thu, 13 Jul 2023 13:47:55 +0200 Subject: [PATCH] check for valid matrix account and room --- MatrixPlugin.php | 18 +++++++++++------- plugin.manifest | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/MatrixPlugin.php b/MatrixPlugin.php index 0d2f503..c3b4d05 100644 --- a/MatrixPlugin.php +++ b/MatrixPlugin.php @@ -135,12 +135,13 @@ class MatrixPlugin extends StudIPPlugin implements StandardPlugin */ public function invite($event, $membership) { - if ($matrix = MatrixAccount::findOneByUser_id($membership->user_id) && - $room = MatrixRoom::findOneByRange_id($membership->seminar_id)) { + $matrix = MatrixAccount::findOneByUser_id($membership->user_id); + $room = MatrixRoom::findOneByRange_id($membership->seminar_id); + if (is_a($matrix, MatrixAccount::class) && is_a($room, MatrixRoom::class)) { MatrixClient::get()->inviteIntoRoom( MatrixAccount::requireSystemAccount(), $room->getLinkedRoom(), - $matrix->matrix_account_id + (string) $matrix->matrix_account_id ); } } @@ -153,8 +154,9 @@ class MatrixPlugin extends StudIPPlugin implements StandardPlugin */ public function uninvite($event, $membership) { - if ($matrix = MatrixAccount::findOneByUser_id($membership->user_id) && - $room = MatrixRoom::findOneByRange_id($membership->seminar_id)) { + $matrix = MatrixAccount::findOneByUser_id($membership->user_id); + $room = MatrixRoom::findOneByRange_id($membership->seminar_id); + if (is_a($matrix, MatrixAccount::class) && is_a($room, MatrixRoom::class)) { MatrixClient::get()->leaveRoom( $matrix->getLinkedAccount(), $room->getLinkedRoom() @@ -171,7 +173,8 @@ class MatrixPlugin extends StudIPPlugin implements StandardPlugin */ public function unregister($event, $user) { - if ($account = MatrixAccount::findOneByUser_id($user->id)) { + $account = MatrixAccount::findOneByUser_id($user->id); + if (is_a($account, MatrixAccount::class)) { if (MatrixClient::get()->deactivateAccount($account->getLinkedAccount())) { $account->delete(); } @@ -186,7 +189,8 @@ class MatrixPlugin extends StudIPPlugin implements StandardPlugin */ public function deleteRoom($event, $course) { - if ($room = MatrixRoom::findOneByRange_id($course->id)) { + $room = MatrixRoom::findOneByRange_id($course->id); + if (is_a($room, MatrixRoom::class)) { MatrixClient::get()->deleteRoom( MatrixAccount::requireSystemAccount(), $room->getLinkedRoom() diff --git a/plugin.manifest b/plugin.manifest index 630979a..7be83dc 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,7 +1,7 @@ pluginname=Matrix-Chat pluginclassname=MatrixPlugin origin=data-quest -version=1.4.4 +version=1.4.5 screenshot=assets/images/matrix_logo.png description=Matrix chat for Stud.IP courses studipMinVersion=4.5 -- GitLab