From f7254551bdefb51624b4a26940543235e07db48f Mon Sep 17 00:00:00 2001
From: ulrich@undisclosed <ulrich@ulrich-vaio>
Date: Sun, 17 May 2020 11:56:42 +0000
Subject: [PATCH] Nutzer loeschen und Dialog zur Bestaetigung

---
 src/java/de/uhilger/um/web/Initialiser.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/src/java/de/uhilger/um/web/Initialiser.java b/src/java/de/uhilger/um/web/Initialiser.java
index 1895344..ca9db18 100644
--- a/src/java/de/uhilger/um/web/Initialiser.java
+++ b/src/java/de/uhilger/um/web/Initialiser.java
@@ -18,10 +18,13 @@
 
 package de.uhilger.um.web;
 
+import de.uhilger.baselink.GenericRecord;
 import de.uhilger.baselink.PersistenceManager;
 import de.uhilger.baselink.Record;
 import de.uhilger.um.api.UserMgr;
 import de.uhilger.um.daten.User;
+import de.uhilger.um.daten.UserData;
+import de.uhilger.um.daten.UserRole;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
@@ -124,6 +127,7 @@
       PersistenceManager db = new PersistenceManager();
       db.setDataSourceName(servletContext.getInitParameter(P_DSNAME));
       servletContext.setAttribute(UserMgr.UM_DB, db);
+      initMapper(servletContext);
       Properties sql = (Properties) servletContext.getAttribute(UserMgr.UM_SQL_PROPERTIES);
       if(!dbVorhanden(db, sql.getProperty(SQL_DB_VORHANDEN))) {
         logger.info("Datenbank ist nicht vorhanden");
@@ -131,6 +135,9 @@
         User admin = new User();
         admin.setId("admin");
         admin.setPw("admin");
+        admin.setFirstName("admin");
+        admin.setLastName("admin");
+        admin.setEmail("none");
         UserMgr um = new UserMgr();
         um.setServletContext(servletContext);
         um.createUser(admin);
@@ -140,11 +147,26 @@
     }
   }
   
+  /**
+   * Mapper erzeugen
+   * @param servletContext der ServletContext dieser Webanwendung
+   */
+  /*
+  TODO: das noch auf on demand anlegen: GenericRecord wird erst angelegt
+   wenn er erstmals benoetigt wird. Ggf. auch einen Mechanismus zum entfernen 
+   laenger nicht benoetigter Mapper hinzufuegen
+  */
+  private void initMapper(ServletContext servletContext) {
+    servletContext.setAttribute(UserMgr.MP_USER, new GenericRecord(User.class));
+    servletContext.setAttribute(UserMgr.MP_USER_DATA, new GenericRecord(UserData.class));
+    servletContext.setAttribute(UserMgr.MP_USER_ROLE, new GenericRecord(UserRole.class));
+  }
+  
   @SuppressWarnings("rawtypes")
   private boolean dbVorhanden(PersistenceManager pm, String sql) {
     boolean istVorhanden = false;
     List<List<String>> list = pm.select(sql, Record.WITHOUT_BLOBS);
-    if(list.size() > 1) {
+    if(list != null && list.size() > 1) {
       istVorhanden = true;
       logger.fine("Datenbank ist vorhanden");
     }
@@ -179,6 +201,12 @@
   @Override
   public void contextDestroyed(ServletContextEvent sce) {
     // destroy whatever 
+    ServletContext ctx = sce.getServletContext();
+    ctx.removeAttribute(UserMgr.MP_USER);
+    ctx.removeAttribute(UserMgr.MP_USER_DATA);
+    ctx.removeAttribute(UserMgr.MP_USER_ROLE);
+    ctx.removeAttribute(UserMgr.UM_SQL_PROPERTIES);
+    ctx.removeAttribute(UserMgr.UM_DB);
   }
   
 }

--
Gitblit v1.9.3