gp
Merge branch 'main' into dev
This commit is contained in:
@@ -6,10 +6,11 @@ public class Path {
|
||||
|
||||
public static final String ADD = "add";
|
||||
public static final String AVAILABLE = "available";
|
||||
public static final String CSS = "css";
|
||||
public static final String COMMON_TEMPLATES = "common_templates";
|
||||
public static final String COMPANY = "company";
|
||||
public static final String CONNECTED = "connected";
|
||||
public static final String CSS = "css";
|
||||
public static final String COMMON_TEMPLATES = "common_templates";
|
||||
public static final String COMPANY = "company";
|
||||
public static final String CONFIG_SESSION_DURATION = "umbrella.session.duration";
|
||||
public static final String CONNECTED = "connected";
|
||||
|
||||
public static final String ITEM = "item";
|
||||
|
||||
|
||||
@@ -88,9 +88,14 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
public UserModule(Configuration config) throws UmbrellaException {
|
||||
super();
|
||||
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingConfig(CONFIG_DATABASE));
|
||||
var sqlite = new SqliteDB(connect(dbFile));
|
||||
|
||||
// may be splitted in separate db files later
|
||||
logins = new SqliteDB(connect(dbFile));
|
||||
users = new SqliteDB(connect(dbFile));
|
||||
logins = sqlite;
|
||||
users = sqlite;
|
||||
|
||||
Optional<Number> sessionDuration = config.get(CONFIG_SESSION_DURATION);
|
||||
sessionDuration.ifPresent(users::setSessionDuration);
|
||||
ModuleRegistry.add(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,4 +41,6 @@ public interface UserDb {
|
||||
UmbrellaUser save(DbUser user) throws UmbrellaException;
|
||||
|
||||
Map<Long,DbUser> search(String key);
|
||||
|
||||
UserDb setSessionDuration(Number minutes);
|
||||
}
|
||||
|
||||
@@ -35,12 +35,14 @@ import java.security.NoSuchAlgorithmException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
public class SqliteDB extends BaseDb implements LoginServiceDb, UserDb {
|
||||
private static final System.Logger LOG = System.getLogger(SqliteDB.class.getSimpleName());
|
||||
private static Duration sessionDuration = DEFAULT_SESSION_DURATION;
|
||||
|
||||
public SqliteDB(Connection conn){
|
||||
super(conn);
|
||||
@@ -481,8 +483,15 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserDb setSessionDuration(Number minutes) {
|
||||
LOG.log(INFO,"Session duration set to {} minutes",minutes);
|
||||
sessionDuration = Duration.ofMinutes(minutes.longValue());
|
||||
return this;
|
||||
}
|
||||
|
||||
public Instant then(){
|
||||
return LocalDateTime.now().plus(DEFAULT_SESSION_DURATION).toInstant(UTC);
|
||||
return LocalDateTime.now().plus(sessionDuration).toInstant(UTC);
|
||||
}
|
||||
|
||||
private ForeignLogin toForeignLogin(ResultSet rs) throws SQLException {
|
||||
|
||||
Reference in New Issue
Block a user