Browse Source

fixed creation of first user upon database initalization

feature/document
Stephan Richter 4 months ago
parent
commit
9d83008a62
  1. 4
      frontend/src/App.svelte
  2. 1
      messages/src/main/java/de/srsoftware/umbrella/message/MessageApi.java
  3. 1
      messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java
  4. 19
      messages/src/main/java/de/srsoftware/umbrella/message/SqliteMessageDb.java
  5. 12
      user/src/main/java/de/srsoftware/umbrella/user/sqlite/SqliteDB.java
  6. 4
      web/src/main/java/de/srsoftware/umbrella/web/WebHandler.java

4
frontend/src/App.svelte

@ -40,9 +40,7 @@ @@ -40,9 +40,7 @@
<Route path="/user/:user_id/edit" component={UserEdit} />
<Route path="/user/oidc/add" component={EditService} />
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
<Route>
<p>Page not found</p>
</Route>
<Route component={User} />
{:else}
<Login />
<Route path="/oidc_callback" component={Callback} />

1
messages/src/main/java/de/srsoftware/umbrella/message/MessageApi.java

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.message;
import de.srsoftware.umbrella.core.BaseHandler;

1
messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.message;
public class MessageSystem {

19
messages/src/main/java/de/srsoftware/umbrella/message/SqliteMessageDb.java

@ -1,16 +1,6 @@ @@ -1,16 +1,6 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.message;
import de.srsoftware.umbrella.core.UmbrellaException;
import de.srsoftware.umbrella.user.model.UmbrellaUser;
import de.srsoftware.umbrella.message.model.Settings;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.stream.Collectors;
import static de.srsoftware.tools.jdbc.Condition.equal;
import static de.srsoftware.tools.jdbc.Query.*;
import static de.srsoftware.umbrella.core.Constants.*;
@ -19,6 +9,15 @@ import static java.lang.System.Logger.Level.ERROR; @@ -19,6 +9,15 @@ import static java.lang.System.Logger.Level.ERROR;
import static java.lang.System.Logger.Level.WARNING;
import static java.text.MessageFormat.format;
import de.srsoftware.umbrella.core.UmbrellaException;
import de.srsoftware.umbrella.message.model.Settings;
import de.srsoftware.umbrella.user.model.UmbrellaUser;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.stream.Collectors;
public class SqliteMessageDb implements MessageDb{
private static final System.Logger LOG = System.getLogger(SqliteMessageDb.class.getSimpleName());
private final Connection db;

12
user/src/main/java/de/srsoftware/umbrella/user/sqlite/SqliteDB.java

@ -20,7 +20,6 @@ import de.srsoftware.umbrella.user.api.UserDb; @@ -20,7 +20,6 @@ import de.srsoftware.umbrella.user.api.UserDb;
import de.srsoftware.umbrella.user.model.*;
import de.srsoftware.umbrella.user.model.Session;
import de.srsoftware.umbrella.user.model.UmbrellaUser;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.ResultSet;
@ -159,8 +158,17 @@ CREATE TABLE IF NOT EXISTS {0} ( @@ -159,8 +158,17 @@ CREATE TABLE IF NOT EXISTS {0} (
throw new RuntimeException(e);
}
long count = 0L;
try {
ResultSet rs = select("COUNT(*)").from(TABLE_USERS).exec(db);
if (rs.next()) count = rs.getLong(1);
rs.close();
} catch (SQLException ignored) {
// go on with table creation
}
try {
Query.insertInto(TABLE_USERS,LOGIN,PASS,THEME,SETTINGS).values("admin", hasher.hash("admin",null),"default",null).execute(db);
if (count<1) insertInto(TABLE_USERS,LOGIN,PASS,THEME,SETTINGS).values("admin", hasher.hash("admin",null),"default",null).execute(db);
} catch (SQLException e) {
LOG.log(ERROR,"Failed to create first user…");
throw new RuntimeException(e);

4
web/src/main/java/de/srsoftware/umbrella/web/WebHandler.java

@ -1,19 +1,15 @@ @@ -1,19 +1,15 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.web;
import static de.srsoftware.tools.Optionals.nullable;
import static java.lang.System.Logger.Level.DEBUG;
import static java.lang.System.Logger.Level.WARNING;
import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.tools.Path;
import de.srsoftware.tools.PathHandler;
import de.srsoftware.umbrella.core.BaseHandler;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
public class WebHandler extends BaseHandler {

Loading…
Cancel
Save