diff --git a/src/main/java/fr/xephi/authme/datasource/AbstractSqlDataSource.java b/src/main/java/fr/xephi/authme/datasource/AbstractSqlDataSource.java index 6c12a171..3a7cf82d 100644 --- a/src/main/java/fr/xephi/authme/datasource/AbstractSqlDataSource.java +++ b/src/main/java/fr/xephi/authme/datasource/AbstractSqlDataSource.java @@ -168,5 +168,15 @@ public abstract class AbstractSqlDataSource implements DataSource { } } + @Override + public DataSourceValue getVerified(String user) { + try { + return columnsHandler.retrieve(user, AuthMeColumns.IS_VERIFIED); + } catch (SQLException e) { + logSqlException(e); + return DataSourceValueImpl.unknownRow(); + } + } + abstract String getJdbcUrl(String host, String port, String database); } diff --git a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java index 450fd051..862fbfb9 100644 --- a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java +++ b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java @@ -281,6 +281,13 @@ public class CacheDataSource implements DataSource { .orElse(DataSourceValueImpl.unknownRow()); } + @Override + public DataSourceValue getVerified(String user) { + return cachedAuths.getUnchecked(user) + .map(auth -> DataSourceValueImpl.of(auth.isEmailVerified())) + .orElse(DataSourceValueImpl.unknownRow()); + } + @Override public List getAllAuths() { return source.getAllAuths(); diff --git a/src/main/java/fr/xephi/authme/datasource/H2.java b/src/main/java/fr/xephi/authme/datasource/H2.java index 94b28f58..3a606683 100644 --- a/src/main/java/fr/xephi/authme/datasource/H2.java +++ b/src/main/java/fr/xephi/authme/datasource/H2.java @@ -369,6 +369,7 @@ public class H2 extends AbstractSqlDataSource { return PlayerAuth.builder() .name(row.getString(col.NAME)) .email(row.getString(col.EMAIL)) + .emailVerified(row.getBoolean(col.IS_VERIFIED)) .realName(row.getString(col.REAL_NAME)) .password(row.getString(col.PASSWORD), salt) .totpKey(row.getString(col.TOTP_KEY)) diff --git a/src/main/java/fr/xephi/authme/datasource/MySQL.java b/src/main/java/fr/xephi/authme/datasource/MySQL.java index 1b604153..7252360b 100644 --- a/src/main/java/fr/xephi/authme/datasource/MySQL.java +++ b/src/main/java/fr/xephi/authme/datasource/MySQL.java @@ -514,6 +514,7 @@ public class MySQL extends AbstractSqlDataSource { .lastLogin(getNullableLong(row, col.LAST_LOGIN)) .lastIp(row.getString(col.LAST_IP)) .email(row.getString(col.EMAIL)) + .emailVerified(row.getBoolean(col.IS_VERIFIED)) .registrationDate(row.getLong(col.REGISTRATION_DATE)) .registrationIp(row.getString(col.REGISTRATION_IP)) .groupId(group) diff --git a/src/main/java/fr/xephi/authme/datasource/PostgreSqlDataSource.java b/src/main/java/fr/xephi/authme/datasource/PostgreSqlDataSource.java index cc308934..455809c0 100644 --- a/src/main/java/fr/xephi/authme/datasource/PostgreSqlDataSource.java +++ b/src/main/java/fr/xephi/authme/datasource/PostgreSqlDataSource.java @@ -458,6 +458,7 @@ public class PostgreSqlDataSource extends AbstractSqlDataSource { .lastLogin(getNullableLong(row, col.LAST_LOGIN)) .lastIp(row.getString(col.LAST_IP)) .email(row.getString(col.EMAIL)) + .emailVerified(row.getBoolean(col.IS_VERIFIED)) .registrationDate(row.getLong(col.REGISTRATION_DATE)) .registrationIp(row.getString(col.REGISTRATION_IP)) .groupId(group) diff --git a/src/main/java/fr/xephi/authme/datasource/SQLite.java b/src/main/java/fr/xephi/authme/datasource/SQLite.java index b261b5d5..ffaa64f4 100644 --- a/src/main/java/fr/xephi/authme/datasource/SQLite.java +++ b/src/main/java/fr/xephi/authme/datasource/SQLite.java @@ -371,6 +371,7 @@ public class SQLite extends AbstractSqlDataSource { return PlayerAuth.builder() .name(row.getString(col.NAME)) .email(row.getString(col.EMAIL)) + .emailVerified(row.getBoolean(col.IS_VERIFIED)) .realName(row.getString(col.REAL_NAME)) .password(row.getString(col.PASSWORD), salt) .totpKey(row.getString(col.TOTP_KEY))