#1120 Use empty "realname" when converting from flatfile
- FlatFile doesn't store the "realname" - all names are always in all-lowercase. Converting from flatfile to other data source should therefore not take over an auth's realname - Adjust sample flatfile file to only have all-lowercase usernames
This commit is contained in:
parent
c079f5f3d5
commit
009d82c0a9
@ -37,7 +37,7 @@ public abstract class AbstractDataSourceConverter<S extends DataSource> implemen
|
|||||||
// which is never the case when a converter is launched from the /authme converter command.
|
// which is never the case when a converter is launched from the /authme converter command.
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender) {
|
public void execute(CommandSender sender) {
|
||||||
if (!destinationType.equals(destination.getType())) {
|
if (destinationType != destination.getType()) {
|
||||||
if (sender != null) {
|
if (sender != null) {
|
||||||
sender.sendMessage("Please configure your connection to "
|
sender.sendMessage("Please configure your connection to "
|
||||||
+ destinationType + " and re-run this command");
|
+ destinationType + " and re-run this command");
|
||||||
@ -59,6 +59,7 @@ public abstract class AbstractDataSourceConverter<S extends DataSource> implemen
|
|||||||
if (destination.isAuthAvailable(auth.getNickname())) {
|
if (destination.isAuthAvailable(auth.getNickname())) {
|
||||||
skippedPlayers.add(auth.getNickname());
|
skippedPlayers.add(auth.getNickname());
|
||||||
} else {
|
} else {
|
||||||
|
adaptPlayerAuth(auth);
|
||||||
destination.saveAuth(auth);
|
destination.saveAuth(auth);
|
||||||
destination.updateQuitLoc(auth);
|
destination.updateQuitLoc(auth);
|
||||||
}
|
}
|
||||||
@ -72,6 +73,15 @@ public abstract class AbstractDataSourceConverter<S extends DataSource> implemen
|
|||||||
+ " to " + destinationType);
|
+ " to " + destinationType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adapts the PlayerAuth from the source before it is saved in the destination.
|
||||||
|
*
|
||||||
|
* @param auth the auth from the source
|
||||||
|
*/
|
||||||
|
protected void adaptPlayerAuth(PlayerAuth auth) {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the data source to convert from
|
* @return the data source to convert from
|
||||||
* @throws Exception during initialization of source
|
* @throws Exception during initialization of source
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package fr.xephi.authme.datasource.converter;
|
package fr.xephi.authme.datasource.converter;
|
||||||
|
|
||||||
|
import fr.xephi.authme.data.auth.PlayerAuth;
|
||||||
import fr.xephi.authme.datasource.DataSource;
|
import fr.xephi.authme.datasource.DataSource;
|
||||||
import fr.xephi.authme.datasource.FlatFile;
|
import fr.xephi.authme.datasource.FlatFile;
|
||||||
|
|
||||||
@ -25,4 +26,11 @@ public class ForceFlatToSqlite extends AbstractDataSourceConverter<FlatFile> {
|
|||||||
public FlatFile getSource() {
|
public FlatFile getSource() {
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void adaptPlayerAuth(PlayerAuth auth) {
|
||||||
|
// Issue #1120: FlatFile returns PlayerAuth objects with realname = lower-case name all the time.
|
||||||
|
// We don't want to take this over into the new data source.
|
||||||
|
auth.setRealName("Player");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,13 +61,13 @@ public class FlatFileIntegrationTest {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(authList, hasSize(7));
|
assertThat(authList, hasSize(7));
|
||||||
assertThat(getName("bobby", authList), hasAuthBasicData("bobby", "Bobby", "your@email.com", "123.45.67.89"));
|
assertThat(getName("bobby", authList), hasAuthBasicData("bobby", "bobby", "your@email.com", "123.45.67.89"));
|
||||||
assertThat(getName("bobby", authList), hasAuthLocation(1.05, 2.1, 4.2, "world"));
|
assertThat(getName("bobby", authList), hasAuthLocation(1.05, 2.1, 4.2, "world"));
|
||||||
assertThat(getName("bobby", authList).getPassword(), equalToHash("$SHA$11aa0706173d7272$dbba966"));
|
assertThat(getName("bobby", authList).getPassword(), equalToHash("$SHA$11aa0706173d7272$dbba966"));
|
||||||
assertThat(getName("twofields", authList), hasAuthBasicData("twofields", "twoFields", "your@email.com", "127.0.0.1"));
|
assertThat(getName("twofields", authList), hasAuthBasicData("twofields", "twofields", "your@email.com", "127.0.0.1"));
|
||||||
assertThat(getName("twofields", authList).getPassword(), equalToHash("hash1234"));
|
assertThat(getName("twofields", authList).getPassword(), equalToHash("hash1234"));
|
||||||
assertThat(getName("threefields", authList), hasAuthBasicData("threefields", "threeFields", "your@email.com", "33.33.33.33"));
|
assertThat(getName("threefields", authList), hasAuthBasicData("threefields", "threefields", "your@email.com", "33.33.33.33"));
|
||||||
assertThat(getName("fourfields", authList), hasAuthBasicData("fourfields", "fourFields", "your@email.com", "4.4.4.4"));
|
assertThat(getName("fourfields", authList), hasAuthBasicData("fourfields", "fourfields", "your@email.com", "4.4.4.4"));
|
||||||
assertThat(getName("fourfields", authList).getLastLogin(), equalTo(404040404L));
|
assertThat(getName("fourfields", authList).getLastLogin(), equalTo(404040404L));
|
||||||
assertThat(getName("sevenfields", authList), hasAuthLocation(7.7, 14.14, 21.21, "world"));
|
assertThat(getName("sevenfields", authList), hasAuthLocation(7.7, 14.14, 21.21, "world"));
|
||||||
assertThat(getName("eightfields", authList), hasAuthLocation(8.8, 17.6, 26.4, "eightworld"));
|
assertThat(getName("eightfields", authList), hasAuthLocation(8.8, 17.6, 26.4, "eightworld"));
|
||||||
|
|||||||
@ -63,11 +63,11 @@ public class ForceFlatToSqliteTest {
|
|||||||
ArgumentCaptor<PlayerAuth> authCaptor = ArgumentCaptor.forClass(PlayerAuth.class);
|
ArgumentCaptor<PlayerAuth> authCaptor = ArgumentCaptor.forClass(PlayerAuth.class);
|
||||||
verify(dataSource, times(7)).saveAuth(authCaptor.capture());
|
verify(dataSource, times(7)).saveAuth(authCaptor.capture());
|
||||||
List<PlayerAuth> auths = authCaptor.getAllValues();
|
List<PlayerAuth> auths = authCaptor.getAllValues();
|
||||||
assertThat(auths, hasItem(hasAuthBasicData("bobby", "Bobby", "your@email.com", "123.45.67.89")));
|
assertThat(auths, hasItem(hasAuthBasicData("bobby", "Player", "your@email.com", "123.45.67.89")));
|
||||||
assertThat(auths, hasItem(hasAuthLocation(1.05, 2.1, 4.2, "world")));
|
assertThat(auths, hasItem(hasAuthLocation(1.05, 2.1, 4.2, "world")));
|
||||||
assertThat(auths, hasItem(hasAuthBasicData("user", "user", "user@example.org", "34.56.78.90")));
|
assertThat(auths, hasItem(hasAuthBasicData("user", "Player", "user@example.org", "34.56.78.90")));
|
||||||
assertThat(auths, hasItem(hasAuthLocation(124.1, 76.3, -127.8, "nether")));
|
assertThat(auths, hasItem(hasAuthLocation(124.1, 76.3, -127.8, "nether")));
|
||||||
assertThat(auths, hasItem(hasAuthBasicData("eightfields", "eightFields", "your@email.com", "6.6.6.66")));
|
assertThat(auths, hasItem(hasAuthBasicData("eightfields", "Player", "your@email.com", "6.6.6.66")));
|
||||||
assertThat(auths, hasItem(hasAuthLocation(8.8, 17.6, 26.4, "eightworld")));
|
assertThat(auths, hasItem(hasAuthLocation(8.8, 17.6, 26.4, "eightworld")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
Bobby:$SHA$11aa0706173d7272$dbba966:123.45.67.89:1449136800:1.05:2.1:4.2:world:your@email.com
|
bobby:$SHA$11aa0706173d7272$dbba966:123.45.67.89:1449136800:1.05:2.1:4.2:world:your@email.com
|
||||||
user:b28c32f624a4eb161d6adc9acb5bfc5b:34.56.78.90:1453242857:124.1:76.3:-127.8:nether:user@example.org
|
user:b28c32f624a4eb161d6adc9acb5bfc5b:34.56.78.90:1453242857:124.1:76.3:-127.8:nether:user@example.org
|
||||||
twoFields:hash1234
|
twofields:hash1234
|
||||||
threeFields:hash369:33.33.33.33
|
threefields:hash369:33.33.33.33
|
||||||
fourFields:$hash$4444:4.4.4.4:404040404
|
fourfields:$hash$4444:4.4.4.4:404040404
|
||||||
sevenFields:hash7749:5.5.5.55:1414141414:7.7:14.14:21.21
|
sevenfields:hash7749:5.5.5.55:1414141414:7.7:14.14:21.21
|
||||||
eightFields:hash8168:6.6.6.66:1234567888:8.8:17.6:26.4:eightworld
|
eightfields:hash8168:6.6.6.66:1234567888:8.8:17.6:26.4:eightworld
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user