new admin panel
new date creation in dashboard.html
This commit is contained in:
@ -2,6 +2,8 @@ package com.wasteinformationserver.website;
|
||||
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
import com.wasteinformationserver.basicutils.Log;
|
||||
import com.wasteinformationserver.website.datarequests.AdminRequests;
|
||||
import com.wasteinformationserver.website.datarequests.NewDateRequest;
|
||||
import com.wasteinformationserver.website.datarequests.login.CheckLoginState;
|
||||
import com.wasteinformationserver.website.datarequests.DataRequest;
|
||||
import com.wasteinformationserver.website.datarequests.login.LoginRequest;
|
||||
@ -27,6 +29,8 @@ public class Webserver {
|
||||
server.createContext("/senddata/registerpost",new RegisterRequest());
|
||||
server.createContext("/senddata/checkloginstate",new CheckLoginState());
|
||||
server.createContext("/senddata/wastedata",new DataRequest());
|
||||
server.createContext("/senddata/admindata", new AdminRequests());
|
||||
server.createContext("/senddata/newdate", new NewDateRequest());
|
||||
|
||||
server.setExecutor(null); // creates a default executor
|
||||
server.start();
|
||||
|
@ -0,0 +1,52 @@
|
||||
package com.wasteinformationserver.website.datarequests;
|
||||
|
||||
import com.wasteinformationserver.basicutils.Log;
|
||||
import com.wasteinformationserver.db.JDCB;
|
||||
import com.wasteinformationserver.website.basicrequest.PostRequest;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class AdminRequests extends PostRequest {
|
||||
@Override
|
||||
public String request(HashMap<String, String> params) {
|
||||
String result = "";
|
||||
switch (params.get("action")) {
|
||||
case "shutdownserver":
|
||||
System.exit(0);
|
||||
break;
|
||||
case "restartserver":
|
||||
final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
|
||||
File currentJar = null;
|
||||
try {
|
||||
currentJar = new File(AdminRequests.class.getProtectionDomain().getCodeSource().getLocation().toURI());
|
||||
} catch (URISyntaxException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/* is it a jar file? */
|
||||
if(!currentJar.getName().endsWith(".jar"))
|
||||
System.out.println("not jar");
|
||||
|
||||
/* Build command: java -jar application.jar */
|
||||
final ArrayList<String> command = new ArrayList<String>();
|
||||
command.add(javaBin);
|
||||
command.add("-jar");
|
||||
command.add(currentJar.getPath());
|
||||
|
||||
final ProcessBuilder builder = new ProcessBuilder(command);
|
||||
try {
|
||||
builder.start();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
System.exit(0);
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
@ -45,24 +45,24 @@ public class DataRequest extends PostRequest {
|
||||
int status = jdcb.executeUpdate("INSERT INTO `cities`(`userid`, `name`, `wastetype`, `zone`) VALUES ('0','" + params.get("cityname") + "','" + params.get("wastetype") + "','" + params.get("wastezone") + "');");
|
||||
System.out.println(status);
|
||||
if (status == 1) {
|
||||
sb.append("\"status\" : \"inserted\"}");
|
||||
sb.append("\"status\" : \"inserted\"");
|
||||
} else {
|
||||
sb.append("\"status\" : \"inserterror\"");
|
||||
}
|
||||
|
||||
} else if (size > 1) {
|
||||
Log.warning("more than one entry in db!!!");
|
||||
result = "\"status\" : \"exists\"";
|
||||
sb.append("\"status\" : \"exists\"");
|
||||
} else {
|
||||
//already exists
|
||||
System.out.println("already exists");
|
||||
result = "\"status\" : \"exists\"";
|
||||
sb.append("\"status\" : \"exists\"");
|
||||
}
|
||||
|
||||
sb.append(",\"query\":\"ok\"");
|
||||
sb.append("}");
|
||||
|
||||
Log.debug(result);
|
||||
result = sb.toString();
|
||||
break;
|
||||
case "getAllCities":
|
||||
StringBuilder builder = new StringBuilder();
|
||||
@ -85,17 +85,34 @@ public class DataRequest extends PostRequest {
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
builder.append("]}");
|
||||
builder.append("]");
|
||||
builder.append(",\"query\":\"ok\"");
|
||||
builder.append("}");
|
||||
result = builder.toString();
|
||||
Log.debug(result);
|
||||
break;
|
||||
case "deletecity":
|
||||
//DELETE FROM `cities` WHERE `id`=0
|
||||
|
||||
StringBuilder sbb = new StringBuilder(); // TODO: 06.12.19 better naming and sb for all
|
||||
|
||||
Log.debug(params.get("id"));
|
||||
int status= jdcb.executeUpdate("DELETE FROM `cities` WHERE `id`='" + params.get("id")+"'");
|
||||
Log.debug(status);
|
||||
|
||||
sbb.append("{");
|
||||
|
||||
if (status == 1){
|
||||
//success
|
||||
sbb.append("\"status\" : \"success\"");
|
||||
}else {
|
||||
sbb.append("\"status\" : \"error\"");
|
||||
}
|
||||
|
||||
sbb.append(",\"query\":\"ok\"");
|
||||
sbb.append("}");
|
||||
result = sbb.toString();
|
||||
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
|
@ -0,0 +1,76 @@
|
||||
package com.wasteinformationserver.website.datarequests;
|
||||
|
||||
import com.wasteinformationserver.basicutils.Log;
|
||||
import com.wasteinformationserver.db.JDCB;
|
||||
import com.wasteinformationserver.website.basicrequest.PostRequest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class NewDateRequest extends PostRequest {
|
||||
@Override
|
||||
public String request(HashMap<String, String> params) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
JDCB jdcb;
|
||||
try {
|
||||
jdcb = JDCB.getInstance();
|
||||
} catch (IOException e) {
|
||||
Log.error("no connection to db");
|
||||
return "{\"query\" : \"nodbconn\"}";
|
||||
}
|
||||
switch (params.get("action")) {
|
||||
case "getCitynames":
|
||||
ResultSet sett = jdcb.executeQuery("select * from cities");
|
||||
Log.debug(sett.toString());
|
||||
sb.append("{\"data\":[");
|
||||
try {
|
||||
String prev = "";
|
||||
while (sett.next()) {
|
||||
if (prev.equals(sett.getString("name"))){
|
||||
|
||||
}else {
|
||||
sb.append("{\"cityname\":\"" + sett.getString("name") + "\"}");
|
||||
if (!sett.isLast()) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
prev = sett.getString("name");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
sb.append("]");
|
||||
sb.append(",\"query\":\"ok\"");
|
||||
sb.append("}");
|
||||
break;
|
||||
case "getzones":
|
||||
ResultSet set = jdcb.executeQuery("select * from cities WHERE `name`='"+params.get("cityname")+"' ORDER BY zone ASC");
|
||||
Log.debug(set.toString());
|
||||
sb.append("{\"data\":[");
|
||||
try {
|
||||
int prev = 42;
|
||||
while (set.next()) {
|
||||
if (prev == set.getInt("zone")){
|
||||
|
||||
}else {
|
||||
sb.append("{\"zone\":\"" + set.getInt("zone") + "\"}");
|
||||
if (!set.isLast()) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
prev = set.getInt("zone");
|
||||
System.out.println(prev);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
sb.append("]");
|
||||
sb.append(",\"query\":\"ok\"");
|
||||
sb.append("}");
|
||||
break;
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ public class CheckLoginState extends PostRequest {
|
||||
Log.message("checking login state");
|
||||
if ((params.get("action")).equals("getloginstate")){
|
||||
if (LoginState.getObject().isLoggedIn()){
|
||||
return "{\"loggedin\":true, \"username\":\""+LoginState.getObject().getUsername()+"\"}";
|
||||
return "{\"loggedin\":true, \"username\":\""+LoginState.getObject().getUsername()+"\", \"permission\":\""+LoginState.getObject().getPermission()+"\"}";
|
||||
}else {
|
||||
return "{\"loggedin\":false}";
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public class LoginRequest extends PostRequest {
|
||||
if (HttpTools.StringToMD5(password).equals(s.getString("password"))) {
|
||||
Log.debug("login success");
|
||||
LoginState.getObject().logIn();
|
||||
LoginState.getObject().setAccountData(username,"","","");
|
||||
LoginState.getObject().setAccountData(username,"","","", s.getInt("permission")); // TODO: 06.12.19
|
||||
response = "{\"accept\": true}";
|
||||
} else {
|
||||
Log.debug("wrong password");
|
||||
|
@ -13,8 +13,9 @@ public class LoginState {
|
||||
private String firstname;
|
||||
private String lastname;
|
||||
private String email;
|
||||
private int permission;
|
||||
|
||||
boolean loggedin = true; // TODO: 05.12.19 set back!!
|
||||
boolean loggedin = false;
|
||||
|
||||
public void logIn(){
|
||||
loggedin=true;
|
||||
@ -24,11 +25,12 @@ public class LoginState {
|
||||
loggedin=false;
|
||||
}
|
||||
|
||||
public void setAccountData(String username, String firstname, String lastname, String email){
|
||||
public void setAccountData(String username, String firstname, String lastname, String email, int permission){
|
||||
this.username=username;
|
||||
this.firstname=firstname;
|
||||
this.lastname=lastname;
|
||||
this.email=email;
|
||||
this.permission = permission;
|
||||
}
|
||||
|
||||
public boolean isLoggedIn(){
|
||||
@ -50,4 +52,8 @@ public class LoginState {
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public int getPermission() {
|
||||
return permission;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user