User Delete By Admin

- User können von admins gelöscht werden,
- email adresse kann nicht doppelt registriert werden
This commit is contained in:
brausjonas
2023-05-09 18:39:10 +02:00
parent 8c50577ca1
commit 0ff09533e8
4 changed files with 90 additions and 1 deletions
Binary file not shown.
+54
View File
@@ -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" 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: 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] 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]
@@ -339,7 +339,7 @@ public class DataBaseHandler
{ {
ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'"); ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'");
User u = resultSetToUser(rs); User u = resultSetToUser(rs);
u.clearOutPassword(); if(u != null) u.clearOutPassword();
return u; return u;
} catch (SQLException e) } catch (SQLException e)
@@ -407,4 +407,18 @@ public class DataBaseHandler
return null; 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;
}
}
} }
@@ -24,6 +24,13 @@ public class UserController
@PostMapping("/users") @PostMapping("/users")
public ResponseEntity<String> addUser(@RequestBody User user) public ResponseEntity<String> 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 //if user was successfully added to database
User u = db.addUser(user); User u = db.addUser(user);
@@ -103,4 +110,18 @@ public class UserController
return new ResponseEntity<>(HttpStatus.FORBIDDEN); return new ResponseEntity<>(HttpStatus.FORBIDDEN);
} }
@CrossOrigin
@DeleteMapping("/users")
public ResponseEntity<Boolean> 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);
}
} }