Fix mistake in gender support for user group changes

This was a mistake in I53c0283, sorry. There are two users involved:
The "agent" is the user (typically an administrator) that made the
user group change, while the "viewing user" is the user for which the
user group was changed. When the "agent" moves the "viewing user"
into a new user group, the "viewing user" is the one that's now
a member of that group. They are what dictates the gender for the
"group-…-member" message.

Is this mistake bad enough for a backport?

Bug: T368249
Change-Id: I4916de2fb171873b625e51ee8823811e0296d323
This commit is contained in:
thiemowmde 2024-07-05 20:18:56 +02:00
parent 9b0010d25e
commit 7845b5fab1

View file

@ -18,38 +18,39 @@ class EchoUserRightsPresentationModel extends EchoEventPresentationModel {
public function getHeaderMessage() {
[ $formattedName, $genderName ] = $this->getAgentForOutput();
$viewingUser = $this->getViewingUserForGender();
$add = array_map(
[ $this->language, 'embedBidi' ],
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'add', [] ), $genderName )
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'add', [] ), $viewingUser )
);
$remove = array_map(
[ $this->language, 'embedBidi' ],
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'remove', [] ), $genderName )
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'remove', [] ), $viewingUser )
);
$expiryChanged = array_map(
[ $this->language, 'embedBidi' ],
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'expiry-changed', [] ), $genderName )
$this->getLocalizedGroupNames( $this->event->getExtraParam( 'expiry-changed', [] ), $viewingUser )
);
if ( $expiryChanged ) {
$msg = $this->msg( 'notification-header-user-rights-expiry-change' );
$msg->params( $genderName );
$msg->params( $this->language->commaList( $expiryChanged ) );
$msg->params( count( $expiryChanged ) );
$msg->params( $this->getViewingUserForGender() );
$msg->params( $viewingUser );
return $msg;
} elseif ( $add && !$remove ) {
$msg = $this->msg( 'notification-header-user-rights-add-only' );
$msg->params( $genderName );
$msg->params( $this->language->commaList( $add ) );
$msg->params( count( $add ) );
$msg->params( $this->getViewingUserForGender() );
$msg->params( $viewingUser );
return $msg;
} elseif ( !$add && $remove ) {
$msg = $this->msg( 'notification-header-user-rights-remove-only' );
$msg->params( $genderName );
$msg->params( $this->language->commaList( $remove ) );
$msg->params( count( $remove ) );
$msg->params( $this->getViewingUserForGender() );
$msg->params( $viewingUser );
return $msg;
} else {
$msg = $this->msg( 'notification-header-user-rights-add-and-remove' );
@ -58,7 +59,7 @@ class EchoUserRightsPresentationModel extends EchoEventPresentationModel {
$msg->params( count( $add ) );
$msg->params( $this->language->commaList( $remove ) );
$msg->params( count( $remove ) );
$msg->params( $this->getViewingUserForGender() );
$msg->params( $viewingUser );
return $msg;
}
}