diff --git a/backend/database.mv.db b/backend/database.mv.db index 64d78de..e021102 100644 Binary files a/backend/database.mv.db and b/backend/database.mv.db differ diff --git a/backend/database.trace.db b/backend/database.trace.db index 3dbe7eb..8a6becf 100644 --- a/backend/database.trace.db +++ b/backend/database.trace.db @@ -1404,3 +1404,57 @@ No data is available [2000-214] org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax Fehler in SQL Befehl "select * from [*]user where mail='test@gmail.com'"; erwartet "identifier" Syntax error in SQL statement "select * from [*]user where mail='test@gmail.com'"; expected "identifier"; SQL statement: select * from user where mail='test@gmail.com' [42001-214] +2023-05-09 16:26:46 jdbc[3]: exception +java.sql.SQLClientInfoException: Client info name 'ApplicationName' not supported. + at org.h2.jdbc.JdbcConnection.setClientInfo(JdbcConnection.java:1573) + at com.intellij.database.remote.jdbc.impl.RemoteConnectionImpl.setClientInfo(RemoteConnectionImpl.java:469) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360) + at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) + at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) + at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) + at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) + at java.base/java.lang.Thread.run(Thread.java:833) +2023-05-09 18:34:46 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] +2023-05-09 18:36:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] +2023-05-09 18:37:03 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] +2023-05-09 16:37:51 jdbc[3]: exception +java.sql.SQLClientInfoException: Client info name 'ApplicationName' not supported. + at org.h2.jdbc.JdbcConnection.setClientInfo(JdbcConnection.java:1573) + at com.intellij.database.remote.jdbc.impl.RemoteConnectionImpl.setClientInfo(RemoteConnectionImpl.java:469) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360) + at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) + at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) + at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) + at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) + at java.base/java.lang.Thread.run(Thread.java:833) +2023-05-09 18:38:17 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] diff --git a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java index c4c94ad..105f96d 100644 --- a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java +++ b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java @@ -339,7 +339,7 @@ public class DataBaseHandler { ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'"); User u = resultSetToUser(rs); - u.clearOutPassword(); + if(u != null) u.clearOutPassword(); return u; } catch (SQLException e) @@ -407,4 +407,18 @@ public class DataBaseHandler return null; } } + + public boolean deleteUser(String mail) + { + try + { + st.executeUpdate("delete from users where mail='" + mail + "'"); + return true; + } + catch(Exception e) + { + e.printStackTrace(); + return false; + } + } } diff --git a/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java b/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java index 00c253b..27485c3 100644 --- a/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java +++ b/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java @@ -24,6 +24,13 @@ public class UserController @PostMapping("/users") public ResponseEntity addUser(@RequestBody User user) { + User checkUser = db.getUser(user.getMail()); + + if(checkUser != null) + { + return new ResponseEntity<>("mail", HttpStatus.FORBIDDEN); + } + //if user was successfully added to database User u = db.addUser(user); @@ -103,4 +110,18 @@ public class UserController return new ResponseEntity<>(HttpStatus.FORBIDDEN); } + + @CrossOrigin + @DeleteMapping("/users") + public ResponseEntity deleteUser(@RequestParam(name="sessionid") String sessionID, @RequestParam(name="mail") String mail) + { + User sessionUser = UserSessionIDHandler.getUserBySessionID(sessionID); + + if(sessionUser != null && sessionUser.getPermissions() == UserPermissions.admin.getValue()) + { + return new ResponseEntity<>(db.deleteUser(mail), HttpStatus.OK); + } + + return new ResponseEntity<>(HttpStatus.FORBIDDEN); + } }