mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 16:22:43 +01:00
Fix Exception in Chat room when you are not a Participant
Summary: After this change you can lurk in public chats, and receive notifications, without crashing your planet. Fix exception "Undefined index: PHID-USER-..." shown to newcomers when they are receiving messages from a public Chat they are not members of. Closes T15497 Test Plan: - Have the Notification server (Aphlict) enabled and running. https://we.phorge.it/book/phorge/article/notifications/ - Be user Alice and visit a Conpherence Room. Alice must be not a participant. - Be user Bob and send a message in that Room. Now Alice does not see a crash anymore, but the message from Bob. Reviewers: O1 Blessed Committers, speck Reviewed By: O1 Blessed Committers, speck Subscribers: speck, tobiaswiese, Matthew, Cigaryno Maniphest Tasks: T15497 Differential Revision: https://we.phorge.it/D25408
This commit is contained in:
parent
dfa15726ea
commit
8507d3a950
1 changed files with 7 additions and 2 deletions
|
@ -328,7 +328,12 @@ final class ConpherenceUpdateController
|
||||||
->executeOne();
|
->executeOne();
|
||||||
|
|
||||||
$non_update = false;
|
$non_update = false;
|
||||||
$participant = $conpherence->getParticipant($user->getPHID());
|
|
||||||
|
// The User is always available. The Participant may not. See:
|
||||||
|
// User: it's you, lurking the Chat (maybe it's a public chat).
|
||||||
|
// Participant: it's you, if you are a Chat Member.
|
||||||
|
// https://we.phorge.it/T15497
|
||||||
|
$participant = $conpherence->getParticipantIfExists($user->getPHID());
|
||||||
|
|
||||||
if ($need_transactions && $conpherence->getTransactions()) {
|
if ($need_transactions && $conpherence->getTransactions()) {
|
||||||
$data = ConpherenceTransactionRenderer::renderTransactions(
|
$data = ConpherenceTransactionRenderer::renderTransactions(
|
||||||
|
@ -336,7 +341,7 @@ final class ConpherenceUpdateController
|
||||||
$conpherence);
|
$conpherence);
|
||||||
$key = PhabricatorConpherenceColumnMinimizeSetting::SETTINGKEY;
|
$key = PhabricatorConpherenceColumnMinimizeSetting::SETTINGKEY;
|
||||||
$minimized = $user->getUserSetting($key);
|
$minimized = $user->getUserSetting($key);
|
||||||
if (!$minimized) {
|
if (!$minimized && $participant) {
|
||||||
$participant->markUpToDate($conpherence);
|
$participant->markUpToDate($conpherence);
|
||||||
}
|
}
|
||||||
} else if ($need_transactions) {
|
} else if ($need_transactions) {
|
||||||
|
|
Loading…
Reference in a new issue