Skip to content
Snippets Groups Projects
Commit ad789c87 authored by Michael Hamann's avatar Michael Hamann
Browse files

XWIKI-21133: User reference serializer doesn't serialize the current user...

XWIKI-21133: User reference serializer doesn't serialize the current user reference when the current user is superadmin

* Change the code to use the same logic for the current user and an
  explicitly given user.
* Add a test.
parent ecd55206
No related branches found
No related tags found
No related merge requests found
...@@ -65,19 +65,21 @@ public String serialize(UserReference userReference, Object... parameters) ...@@ -65,19 +65,21 @@ public String serialize(UserReference userReference, Object... parameters)
String result; String result;
if (userReference == null) { if (userReference == null) {
result = null; result = null;
} else if (SuperAdminUserReference.INSTANCE == userReference) { } else {
result = SUPERADMIN_REFERENCE_STRING; UserReference resolvedReference;
} else if (GuestUserReference.INSTANCE == userReference) { if (CurrentUserReference.INSTANCE == userReference) {
result = GUEST_REFERENCE_STRING; resolvedReference = this.currentUserReferenceUserReferenceResolver.resolve(null);
} else if (CurrentUserReference.INSTANCE == userReference) { } else {
UserReference resolvedUserReference = this.currentUserReferenceUserReferenceResolver.resolve(null); resolvedReference = userReference;
if (GuestUserReference.INSTANCE == resolvedUserReference) { }
if (SuperAdminUserReference.INSTANCE == resolvedReference) {
result = SUPERADMIN_REFERENCE_STRING;
} else if (GuestUserReference.INSTANCE == resolvedReference) {
result = GUEST_REFERENCE_STRING; result = GUEST_REFERENCE_STRING;
} else { } else {
result = serializeInternal(resolvedUserReference, parameters); result = serializeInternal(resolvedReference, parameters);
} }
} else {
result = serializeInternal(userReference, parameters);
} }
return result; return result;
} }
......
...@@ -111,4 +111,12 @@ void serializeCurrentUserReferenceWhenNoCurrentUser() ...@@ -111,4 +111,12 @@ void serializeCurrentUserReferenceWhenNoCurrentUser()
assertEquals("XWiki.XWikiGuest", this.serializer.serialize(CurrentUserReference.INSTANCE)); assertEquals("XWiki.XWikiGuest", this.serializer.serialize(CurrentUserReference.INSTANCE));
} }
@Test
void serializeCurrentUserReferenceWhenCurrentUserIsSuperAdmin()
{
when(this.currentUserReferenceUserReferenceResolver.resolve(null)).thenReturn(SuperAdminUserReference.INSTANCE);
assertEquals("XWiki.superadmin", this.serializer.serialize(CurrentUserReference.INSTANCE));
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment