@@ -138,6 +138,7 @@ protected function parseMessage(Message $chatMessage): void {
138
138
139
139
$ participant = $ chatMessage ->getParticipant ();
140
140
if ($ participant === null ) {
141
+ $ currentActorType = null ;
141
142
$ currentActorId = null ;
142
143
$ currentUserIsActor = false ;
143
144
} elseif ($ this ->federationAuthenticator ->isFederationRequest ()) {
@@ -149,16 +150,20 @@ protected function parseMessage(Message $chatMessage): void {
149
150
];
150
151
}
151
152
153
+ $ currentActorType = $ participant ->getAttendee ()->getActorType ();
154
+ $ currentActorId = $ participant ->getAttendee ()->getActorId ();
152
155
$ currentUserIsActor = isset ($ parsedParameters ['actor ' ]['server ' ]) &&
153
156
$ parsedParameters ['actor ' ]['type ' ] === 'user ' &&
154
157
$ this ->currentFederatedUserDetails ['user ' ] === $ parsedParameters ['actor ' ]['id ' ] &&
155
158
$ this ->currentFederatedUserDetails ['server ' ] === $ parsedParameters ['actor ' ]['server ' ];
156
159
} elseif (!$ participant ->isGuest ()) {
160
+ $ currentActorType = $ participant ->getAttendee ()->getActorType ();
157
161
$ currentActorId = $ participant ->getAttendee ()->getActorId ();
158
162
$ currentUserIsActor = $ parsedParameters ['actor ' ]['type ' ] === 'user ' &&
159
163
$ participant ->getAttendee ()->getActorType () === Attendee::ACTOR_USERS &&
160
164
$ currentActorId === $ parsedParameters ['actor ' ]['id ' ];
161
165
} else {
166
+ $ currentActorType = $ participant ->getAttendee ()->getActorType ();
162
167
$ currentActorId = $ participant ->getAttendee ()->getActorId ();
163
168
$ currentUserIsActor = $ parsedParameters ['actor ' ]['type ' ] === 'guest ' &&
164
169
$ participant ->getAttendee ()->getActorType () === 'guest ' &&
@@ -227,7 +232,7 @@ protected function parseMessage(Message $chatMessage): void {
227
232
$ parsedMessage = $ this ->l ->t ('You left the call ' );
228
233
}
229
234
} elseif ($ message === 'call_missed ' ) {
230
- [$ parsedMessage , $ parsedParameters , $ message ] = $ this ->parseMissedCall ($ room , $ parameters , $ currentActorId );
235
+ [$ parsedMessage , $ parsedParameters , $ message ] = $ this ->parseMissedCall ($ room , $ parameters , $ currentActorType === Attendee:: ACTOR_FEDERATED_USERS ? null : $ currentActorId );
231
236
} elseif ($ message === 'call_ended ' || $ message === 'call_ended_everyone ' ) {
232
237
[$ parsedMessage , $ parsedParameters ] = $ this ->parseCall ($ message , $ parameters , $ parsedParameters );
233
238
} elseif ($ message === 'read_only_off ' ) {
@@ -326,7 +331,7 @@ protected function parseMessage(Message $chatMessage): void {
326
331
}
327
332
} elseif ($ currentUserIsActor ) {
328
333
$ parsedMessage = $ this ->l ->t ('You added {user} ' );
329
- } elseif ($ participant && ! $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
334
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
330
335
$ parsedMessage = $ this ->l ->t ('{actor} added you ' );
331
336
if ($ cliIsActor ) {
332
337
$ parsedMessage = $ this ->l ->t ('An administrator added you ' );
@@ -346,7 +351,7 @@ protected function parseMessage(Message $chatMessage): void {
346
351
$ parsedMessage = $ this ->l ->t ('{actor} removed {user} ' );
347
352
if ($ currentUserIsActor ) {
348
353
$ parsedMessage = $ this ->l ->t ('You removed {user} ' );
349
- } elseif ($ participant && ! $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
354
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
350
355
$ parsedMessage = $ this ->l ->t ('{actor} removed you ' );
351
356
if ($ cliIsActor ) {
352
357
$ parsedMessage = $ this ->l ->t ('An administrator removed you ' );
@@ -431,7 +436,7 @@ protected function parseMessage(Message $chatMessage): void {
431
436
$ parsedMessage = $ this ->l ->t ('{actor} promoted {user} to moderator ' );
432
437
if ($ currentUserIsActor ) {
433
438
$ parsedMessage = $ this ->l ->t ('You promoted {user} to moderator ' );
434
- } elseif ($ participant && ! $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
439
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
435
440
$ parsedMessage = $ this ->l ->t ('{actor} promoted you to moderator ' );
436
441
if ($ cliIsActor ) {
437
442
$ parsedMessage = $ this ->l ->t ('An administrator promoted you to moderator ' );
@@ -444,7 +449,7 @@ protected function parseMessage(Message $chatMessage): void {
444
449
$ parsedMessage = $ this ->l ->t ('{actor} demoted {user} from moderator ' );
445
450
if ($ currentUserIsActor ) {
446
451
$ parsedMessage = $ this ->l ->t ('You demoted {user} from moderator ' );
447
- } elseif ($ participant && ! $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
452
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
448
453
$ parsedMessage = $ this ->l ->t ('{actor} demoted you from moderator ' );
449
454
if ($ cliIsActor ) {
450
455
$ parsedMessage = $ this ->l ->t ('An administrator demoted you from moderator ' );
@@ -457,7 +462,7 @@ protected function parseMessage(Message $chatMessage): void {
457
462
$ parsedMessage = $ this ->l ->t ('{actor} promoted {user} to moderator ' );
458
463
if ($ currentUserIsActor ) {
459
464
$ parsedMessage = $ this ->l ->t ('You promoted {user} to moderator ' );
460
- } elseif ($ participant && $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
465
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
461
466
$ parsedMessage = $ this ->l ->t ('{actor} promoted you to moderator ' );
462
467
if ($ cliIsActor ) {
463
468
$ parsedMessage = $ this ->l ->t ('An administrator promoted you to moderator ' );
@@ -470,7 +475,7 @@ protected function parseMessage(Message $chatMessage): void {
470
475
$ parsedMessage = $ this ->l ->t ('{actor} demoted {user} from moderator ' );
471
476
if ($ currentUserIsActor ) {
472
477
$ parsedMessage = $ this ->l ->t ('You demoted {user} from moderator ' );
473
- } elseif ($ participant && $ participant -> isGuest () && $ currentActorId === $ parsedParameters ['user ' ][ ' id ' ] ) {
478
+ } elseif ($ this -> isCurrentParticipantChangedUser ( $ currentActorType , $ currentActorId, $ parsedParameters ['user ' ]) ) {
474
479
$ parsedMessage = $ this ->l ->t ('{actor} demoted you from moderator ' );
475
480
if ($ cliIsActor ) {
476
481
$ parsedMessage = $ this ->l ->t ('An administrator demoted you from moderator ' );
@@ -819,6 +824,15 @@ protected function getFileFromShare(?Participant $participant, string $shareId):
819
824
return $ data ;
820
825
}
821
826
827
+ protected function isCurrentParticipantChangedUser (?string $ currentActorType , ?string $ currentActorId , array $ parameter ): bool {
828
+ if (isset ($ parameter ['server ' ]) && $ currentActorType === Attendee::ACTOR_FEDERATED_USERS ) {
829
+ return $ this ->currentFederatedUserDetails ['user ' ] === $ parameter ['id ' ]
830
+ && $ this ->currentFederatedUserDetails ['server ' ] === $ parameter ['server ' ];
831
+ }
832
+
833
+ return $ currentActorType === Attendee::ACTOR_USERS && $ currentActorId === $ parameter ['id ' ];
834
+ }
835
+
822
836
protected function getActorFromComment (Room $ room , IComment $ comment ): array {
823
837
return $ this ->getActor ($ room , $ comment ->getActorType (), $ comment ->getActorId ());
824
838
}
0 commit comments