src/java/de/uhilger/um/api/UserMgr.java | ●●●●● patch | view | raw | blame | history | |
src/java/de/uhilger/um/pub/SessionManager.java | ●●●●● patch | view | raw | blame | history | |
src/java/de/uhilger/um/web/Initialiser.java | ●●●●● patch | view | raw | blame | history | |
web/logout.html | ●●●●● patch | view | raw | blame | history | |
web/ui/index.html | ●●●●● patch | view | raw | blame | history | |
web/ui/ui.js | ●●●●● patch | view | raw | blame | history |
src/java/de/uhilger/um/api/UserMgr.java
@@ -18,21 +18,13 @@ package de.uhilger.um.api; import de.uhilger.baselink.GenericRecord; import de.uhilger.baselink.PersistenceManager; import de.uhilger.baselink.Record; import de.uhilger.transit.web.RequestKontext; import de.uhilger.transit.web.WebKontext; import de.uhilger.um.Digester; import de.uhilger.um.daten.User; import de.uhilger.um.daten.UserData; import de.uhilger.um.daten.UserRole; import java.sql.Connection; import java.util.List; import java.util.Properties; import java.util.logging.Logger; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; /** * <p>Die Methoden der Klasse UserMgr sind @@ -63,11 +55,6 @@ private static final Logger logger = Logger.getLogger(UserMgr.class.getName()); /** Zeiger zum Servlet-Kontext dieser Anwendung */ //private ServletContext ctx; //private HttpServletRequest request; /** Name, unter dem das Properties-Objekt mit den SQL-Befehlen im ServletContext hinterlegt ist */ public static final String UM_SQL_PROPERTIES = "umSqlProperties"; @@ -95,13 +82,6 @@ public static final String MP_USER = "userMapper"; public static final String MP_USER_DATA = "userDataMapper"; public static final String MP_USER_ROLE = "userRoleMapper"; /** Mapper-Objekt fuer Benutzer */ //private static final Record UserMapper = new GenericRecord(User.class); /** Mapper-Objekt fuer Benutzerdaten */ //private static final Record UserDataMapper = new GenericRecord(UserData.class); /** Mapper-Objekt fuer Benutzerrollen */ //private static final Record UserRoleMapper = new GenericRecord(UserRole.class); /* ----------- Benutzer -------------- */ @@ -167,56 +147,4 @@ return list; } /** * Ein benanntes SQL-Kommando ermitteln * @param id Name des gewuenschten SQL-Kommandos * @return das SQL-Kommando mit der in id angegebenen Bezeichnung */ /* private String getSql(String id) { Properties sql = (Properties) ctx.getAttribute(UserMgr.UM_SQL_PROPERTIES); return sql.getProperty(id); } private PersistenceManager getDb() { return (PersistenceManager) ctx.getAttribute(UM_DB); } private Record getMapper(String mapperName) { Record record = null; Object o = getServletContext().getAttribute(mapperName); if(o instanceof Record) { record = (Record) o; } return record; } */ /* ------------- Implementierung WebKontext ------------- */ /* @Override public ServletContext getServletContext() { return ctx; } @Override public void setServletContext(ServletContext servletContext) { this.ctx = servletContext; } */ /* ------------- Implementierung RequestKontext ------------- */ /* @Override public HttpServletRequest getRequest() { return request; } @Override public void setRequest(HttpServletRequest r) { this.request = r; } */ } } src/java/de/uhilger/um/pub/SessionManager.java
@@ -1,6 +1,5 @@ package de.uhilger.um.pub; import de.uhilger.baselink.PersistenceManager; import de.uhilger.um.api.Api; import static de.uhilger.um.api.UserMgr.MP_USER_DATA; import static de.uhilger.um.api.UserMgr.SQL_GET_USER_DATA; @@ -8,11 +7,14 @@ import de.uhilger.um.daten.UserData; import java.security.Principal; import java.util.List; import java.util.logging.Logger; /** * */ public class SessionManager extends Api { private static final Logger logger = Logger.getLogger(SessionManager.class.getName()); // /um/pub?c=de.uhilger.um.pub.SessionManager&m=getSessionUser public UserData getSessionUser() { @@ -24,7 +26,7 @@ Object p = getRequest().getUserPrincipal(); if(p instanceof Principal) { String id = ((Principal) p).getName(); PersistenceManager pm = getDb(); logger.info("User-ID: " + id); List userDataList = getDb().select(getSql(SQL_GET_USER_DATA), getMapper(MP_USER_DATA), WITHOUT_BLOBS, id); if(userDataList != null && userDataList.size() > 0) { Object o = userDataList.get(0); @@ -32,9 +34,16 @@ userData = (UserData) o; } } } else { logger.info("getUserPrincipal returned null or no Principal"); } return userData; } public String expireSession() { getRequest().getSession().invalidate(); return "Die aktuelle Sitzung ist nicht mehr gueltig."; } } src/java/de/uhilger/um/web/Initialiser.java
@@ -62,6 +62,10 @@ /** Name des SQL-Befehls zum Pruefen, ob die Datenbank vorhanden ist */ public static final String SQL_DB_VORHANDEN = "dbVorhanden"; public static final String MP_USER = "userMapper"; public static final String MP_USER_DATA = "userDataMapper"; public static final String MP_USER_ROLE = "userRoleMapper"; /** * Diese Webanwendung initialisieren, also z.B. Elemente instantiieren, die * über den Deployment Descritpor veränderlich gehalten sind. web/logout.html
New file @@ -0,0 +1,17 @@ <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="/jslib/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Abgemeldet</title> </head> <body> <div style="margin: 20px;"> <h3>Abmeldung</h3> <p>Sie haben sich erfolgreich abgemeldet.</p> <p>zurück zur <a href="ui/">Anmeldung</a> • <a href="/">Hauptseite</a></p> </div> </body> </html> web/ui/index.html
@@ -16,13 +16,6 @@ </head> <body> <div id="inhalt"> <!-- <div class="breadcrumb"> <a class="breadcrumb-item" href="/">WebBox</a> <a class="breadcrumb-item" href="/wbx/">Verwaltung</a> <span class="breadcrumb-item active">Benutzer</span> </div> --> <ul class="nav"> <li class="nav-item"> <a class="nav-link active" href="/">WebBox</a> @@ -35,13 +28,9 @@ </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a> <a id="userMenu" class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a> <div class="dropdown-menu"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Separated link</a> <a id="logout" class="dropdown-item" href="#">Abmelden</a> </div> </li> </ul> @@ -57,6 +46,8 @@ <input class="form-control eingabe" type="text" size="20" maxlength="30" placeholder="Anmeldename" name="anmeldename" id="anmeldename"> <input class="form-control eingabe" type="password" size="20" maxlength="30" placeholder="Kennwort" name="kennwort" id="kennwort"> <input class="form-control eingabe" type="password" size="20" maxlength="30" placeholder="Wiederholung" name="kennwortw" id="kennwortw"> <input class="form-control eingabe" type="text" size="20" maxlength="250" placeholder="Vorname" name="vorname" id="vorname"> <input class="form-control eingabe" type="text" size="20" maxlength="250" placeholder="Name" name="nachname" id="nachname"> <!--<button class="user-cancel-btn">Abbrechen</button>--> <button class="user-save-btn btn btn-primary eingabe">Speichern</button> </div> web/ui/ui.js
@@ -17,9 +17,12 @@ $('#neueRolle').click(um_new_role); $('#rollen').click(um_role_list_click); $('#nutzerrollen').click(um_user_role_list_click); $('#userMenu').text('?'); $('#logout').click(logout); um_clear_user_form(); um_apicall_get_user_list(); um_apicall_get_granted_roles(); um_apicall_get_login(); } /* ----- user functions ------ */ @@ -43,6 +46,10 @@ um_apicall_del_user(self.serialisieren(user)); } } } function logout() { um_apicall_logout(); } /* ----------- role functions ------------ */ @@ -130,7 +137,9 @@ function um_user_form_lesen() { var userId = $('#anmeldename').val(); var kw = $('#kennwort').val(); var user = new User(userId, kw, '-', '-', '-'); var firstName = $('#vorname').val(); var lastName = $('#nachname'); var user = new User(userId, kw, firstName, lastName, '-'); return user; } @@ -373,6 +382,46 @@ }); } function um_apicall_get_login() { var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser'; var u = '../pub' + m; $.ajax({ url: u, type: "GET", dataType : "json", success: function( resp ) { $('#userMenu').text(resp.UserData.firstName); }, error: function( xhr, status, errorThrown ) { $('#fehler').html("Error: " + errorThrown + " Status: " + status); }, complete: function( xhr, status ) { //alert( "The request is complete!" ); } }); } function um_apicall_logout() { var m = '?c=de.uhilger.um.pub.SessionManager&m=expireSession'; var u = '../pub' + m; $.ajax({ url: u, type: "GET", dataType : "text", success: function( resp ) { $('#userMenu').text('nicht angemeldet'); window.location.href = '../logout.html'; }, error: function( xhr, status, errorThrown ) { $('#fehler').html("Error: " + errorThrown + " Status: " + status); }, complete: function( xhr, status ) { //alert( "The request is complete!" ); } }); } /* ----- Hilfsfunktionen ----- */ function serialisieren(obj) {