Skip to content

Commit f9a6774

Browse files
committed
XWIKI-17942: Email validation check is not properly reset
* Ensure to reset the validation email key once validated
1 parent e4dec4e commit f9a6774

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/XWiki.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -3857,10 +3857,14 @@ public int validateUser(boolean withConfirmEmail, XWikiContext context) throws X
38573857

38583858
// Compare the two keys
38593859
if ((!storedKey.equals("") && (storedKey.equals(validationKey)))) {
3860+
// Ensure to remove the validation key value, so it cannot be used afterwards to enable back
3861+
// a disabled user.
3862+
userObject.setStringValue("validkey", "");
3863+
saveDocument(userDocument, context);
3864+
38603865
XWikiUser xWikiUser = new XWikiUser(userDocument.getDocumentReference());
38613866
xWikiUser.setDisabled(false, context);
38623867
xWikiUser.setEmailChecked(true, context);
3863-
saveDocument(userDocument, context);
38643868

38653869
if (withConfirmEmail) {
38663870
String email = userObject.getStringValue("email");

xwiki-platform-core/xwiki-platform-oldcore/src/test/java/com/xpn/xwiki/XWikiTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,8 @@ public void testValidationKeyStorage() throws Exception
580580
this.xwiki.saveDocument(testUser, context);
581581

582582
assertEquals(0, this.xwiki.validateUser(false, this.oldcore.getXWikiContext()));
583+
XWikiDocument reloadedDocument = this.xwiki.getDocument(testUser, context);
584+
assertEquals("", reloadedDocument.getObject("XWiki.XWikiUsers").getStringValue("validkey"));
583585

584586
// Check with an incorrect plaintext key
585587
validationKey.setValue("wrong key");

0 commit comments

Comments
 (0)