Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Chat/Parser/SystemMessage.php48
-rw-r--r--lib/Chat/SystemMessage/Listener.php11
-rw-r--r--lib/Notification/Listener.php9
-rw-r--r--lib/Room.php3
4 files changed, 65 insertions, 6 deletions
diff --git a/lib/Chat/Parser/SystemMessage.php b/lib/Chat/Parser/SystemMessage.php
index 222ac8d9c..090374355 100644
--- a/lib/Chat/Parser/SystemMessage.php
+++ b/lib/Chat/Parser/SystemMessage.php
@@ -98,16 +98,22 @@ class SystemMessage {
$currentUserIsActor = $parsedParameters['actor']['type'] === 'guest' &&
sha1($participant->getSessionId()) === $parsedParameters['actor']['id'];
}
+ $cliIsActor = $parsedParameters['actor']['type'] === 'guest' &&
+ 'guest/cli' === $parsedParameters['actor']['id'];
if ($message === 'conversation_created') {
$parsedMessage = $this->l->t('{actor} created the conversation');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You created the conversation');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator created the conversation');
}
} elseif ($message === 'conversation_renamed') {
$parsedMessage = $this->l->t('{actor} renamed the conversation from "%1$s" to "%2$s"', [$parameters['oldName'], $parameters['newName']]);
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You renamed the conversation from "%1$s" to "%2$s"', [$parameters['oldName'], $parameters['newName']]);
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator renamed the conversation from "%1$s" to "%2$s"', [$parameters['oldName'], $parameters['newName']]);
}
} elseif ($message === 'call_started') {
$parsedMessage = $this->l->t('{actor} started a call');
@@ -130,11 +136,15 @@ class SystemMessage {
$parsedMessage = $this->l->t('{actor} unlocked the conversation');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You unlocked the conversation');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator unlocked the conversation');
}
} elseif ($message === 'read_only') {
$parsedMessage = $this->l->t('{actor} locked the conversation');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You locked the conversation');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator locked the conversation');
}
} elseif ($message === 'lobby_timer_reached') {
$parsedMessage = $this->l->t('The conversation is now open to everyone');
@@ -152,21 +162,29 @@ class SystemMessage {
$parsedMessage = $this->l->t('{actor} allowed guests');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You allowed guests');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator allowed guests');
}
} elseif ($message === 'guests_disallowed') {
$parsedMessage = $this->l->t('{actor} disallowed guests');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You disallowed guests');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator disallowed guests');
}
} elseif ($message === 'password_set') {
$parsedMessage = $this->l->t('{actor} set a password');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You set a password');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator set a password');
}
} elseif ($message === 'password_removed') {
$parsedMessage = $this->l->t('{actor} removed the password');
if ($currentUserIsActor) {
$parsedMessage = $this->l->t('You removed the password');
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator removed the password');
}
} elseif ($message === 'user_added') {
$parsedParameters['user'] = $this->getUser($parameters['user']);
@@ -181,6 +199,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You added {user}');
} elseif (!$participant->isGuest() && $participant->getUser() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} added you');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator added you');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator added {user}');
}
} elseif ($message === 'user_removed') {
$parsedParameters['user'] = $this->getUser($parameters['user']);
@@ -196,6 +219,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You removed {user}');
} elseif (!$participant->isGuest() && $participant->getUser() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} removed you');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator removed you');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator removed {user}');
}
}
} elseif ($message === 'moderator_promoted') {
@@ -205,6 +233,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You promoted {user} to moderator');
} elseif (!$participant->isGuest() && $participant->getUser() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} promoted you to moderator');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator promoted you to moderator');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator promoted {user} to moderator');
}
} elseif ($message === 'moderator_demoted') {
$parsedParameters['user'] = $this->getUser($parameters['user']);
@@ -213,6 +246,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You demoted {user} from moderator');
} elseif (!$participant->isGuest() && $participant->getUser() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} demoted you from moderator');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator demoted you from moderator');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator demoted {user} from moderator');
}
} elseif ($message === 'guest_moderator_promoted') {
$parsedParameters['user'] = $this->getGuest($parameters['session']);
@@ -221,6 +259,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You promoted {user} to moderator');
} elseif ($participant->isGuest() && $participant->getSessionId() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} promoted you to moderator');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator promoted you to moderator');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator promoted {user} to moderator');
}
} elseif ($message === 'guest_moderator_demoted') {
$parsedParameters['user'] = $this->getGuest($parameters['session']);
@@ -229,6 +272,11 @@ class SystemMessage {
$parsedMessage = $this->l->t('You demoted {user} from moderator');
} elseif ($participant->isGuest() && $participant->getSessionId() === $parsedParameters['user']['id']) {
$parsedMessage = $this->l->t('{actor} demoted you from moderator');
+ if ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator demoted you from moderator');
+ }
+ } elseif ($cliIsActor) {
+ $parsedMessage = $this->l->t('An administrator demoted {user} from moderator');
}
} elseif ($message === 'file_shared') {
try {
diff --git a/lib/Chat/SystemMessage/Listener.php b/lib/Chat/SystemMessage/Listener.php
index de0ecc480..a71e4fff2 100644
--- a/lib/Chat/SystemMessage/Listener.php
+++ b/lib/Chat/SystemMessage/Listener.php
@@ -253,13 +253,16 @@ class Listener {
$actorId = $participant->isGuest() ? $sessionHash : $participant->getUser();
} else {
$user = $this->userSession->getUser();
- if (!$user instanceof IUser) {
+ if ($user instanceof IUser) {
+ $actorType = 'users';
+ $actorId = $user->getUID();
+ } elseif (\OC::$CLI) {
+ $actorType = 'guests';
+ $actorId = 'cli';
+ } else {
$actorType = 'guests';
$sessionId = $this->talkSession->getSessionForRoom($room->getToken());
$actorId = $sessionId ? sha1($sessionId) : 'failed-to-get-session';
- } else {
- $actorType = 'users';
- $actorId = $user->getUID();
}
}
diff --git a/lib/Notification/Listener.php b/lib/Notification/Listener.php
index 765a35f3c..ec832633d 100644
--- a/lib/Notification/Listener.php
+++ b/lib/Notification/Listener.php
@@ -28,7 +28,9 @@ use OCA\Talk\Events\JoinRoomUserEvent;
use OCA\Talk\Events\RoomEvent;
use OCA\Talk\Room;
use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Notification\IApp;
use OCP\Notification\IManager;
use OCP\ILogger;
use OCP\IUser;
@@ -38,6 +40,8 @@ class Listener {
/** @var IManager */
protected $notificationManager;
+ /** @var IEventDispatcher */
+ protected $dispatcher;
/** @var IUserSession */
protected $userSession;
/** @var ITimeFactory */
@@ -49,10 +53,12 @@ class Listener {
protected $shouldSendCallNotification = false;
public function __construct(IManager $notificationManager,
+ IEventDispatcher $dispatcher,
IUserSession $userSession,
ITimeFactory $timeFactory,
ILogger $logger) {
$this->notificationManager = $notificationManager;
+ $this->dispatcher = $dispatcher;
$this->userSession = $userSession;
$this->timeFactory = $timeFactory;
$this->logger = $logger;
@@ -200,6 +206,7 @@ class Listener {
$actor = $this->userSession->getUser();
$actorId = $actor instanceof IUser ? $actor->getUID() :'';
+ $this->dispatcher->dispatch(IApp::class . '::defer', new Event());
$notification = $this->notificationManager->createNotification();
$dateTime = $this->timeFactory->getDateTime();
try {
@@ -217,6 +224,7 @@ class Listener {
->setDateTime($dateTime);
} catch (\InvalidArgumentException $e) {
$this->logger->logException($e, ['app' => 'spreed']);
+ $this->dispatcher->dispatch(IApp::class . '::flush', new Event());
return;
}
@@ -233,6 +241,7 @@ class Listener {
$this->logger->logException($e, ['app' => 'spreed']);
}
}
+ $this->dispatcher->dispatch(IApp::class . '::flush', new Event());
}
/**
diff --git a/lib/Room.php b/lib/Room.php
index d3e9795af..9924241af 100644
--- a/lib/Room.php
+++ b/lib/Room.php
@@ -1319,8 +1319,7 @@ class Room {
$query = $this->db->getQueryBuilder();
$query->update('talk_participants')
->set('last_ping', $query->createNamedParameter($timestamp, IQueryBuilder::PARAM_INT))
- ->where($query->expr()->eq('room_id', $query->createNamedParameter($this->getId(), IQueryBuilder::PARAM_INT)))
- ->andWhere($query->expr()->in('session_id', $query->createNamedParameter($sessionIds, IQueryBuilder::PARAM_STR_ARRAY)));
+ ->where($query->expr()->in('session_id', $query->createNamedParameter($sessionIds, IQueryBuilder::PARAM_STR_ARRAY)));
$query->execute();
}