Revize 05381d82
Přidáno uživatelem Pavel Fidranský před více než 6 roky(ů)
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/UploadFiles.java | ||
---|---|---|
24 | 24 |
|
25 | 25 |
@Override |
26 | 26 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
27 |
doPost(request, response); |
|
28 |
} |
|
29 |
|
|
30 |
@Override |
|
31 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
32 |
|
|
33 |
if (ServletFileUpload.isMultipartContent(request)) { |
|
34 |
String jsonGraph = new FileManager("","").loadFile(request); |
|
35 |
|
|
36 |
if(Strings.isNullOrEmpty(jsonGraph)){ |
|
37 |
request.setAttribute("errorMessage", "<strong>Unsupported file</strong><br/>"); |
|
38 |
} else { |
|
39 |
request.getSession().setAttribute("json_graph", jsonGraph); |
|
40 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "graph"); |
|
41 |
return; |
|
42 |
} |
|
43 |
} |
|
44 |
|
|
45 | 27 |
DB db = new DB(getServletContext()); |
46 | 28 |
Diagram diagram = new Diagram(db); |
47 | 29 |
|
... | ... | |
60 | 42 |
RequestDispatcher rd = getServletContext().getRequestDispatcher("/uploadFiles.jsp"); |
61 | 43 |
rd.forward(request, response); |
62 | 44 |
} |
45 |
|
|
46 |
@Override |
|
47 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
48 |
String jsonGraph = new FileManager("","").loadFile(request); |
|
49 |
|
|
50 |
if (Strings.isNullOrEmpty(jsonGraph)) { |
|
51 |
request.setAttribute("errorMessage", "<strong>Unsupported file</strong><br/>"); |
|
52 |
doGet(request, response); |
|
53 |
} else { |
|
54 |
request.getSession().setAttribute("json_graph", jsonGraph); |
|
55 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "graph"); |
|
56 |
} |
|
57 |
} |
|
63 | 58 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/LoadGraphData.java | ||
---|---|---|
13 | 13 |
import cz.zcu.kiv.offscreen.user.Diagram; |
14 | 14 |
import net.sf.json.JSONObject; |
15 | 15 |
|
16 |
import javax.servlet.ServletException; |
|
17 | 16 |
import javax.servlet.http.HttpServletRequest; |
18 | 17 |
import javax.servlet.http.HttpServletResponse; |
19 | 18 |
import java.io.File; |
... | ... | |
30 | 29 |
* graph is returned as JSON in response body. |
31 | 30 |
*/ |
32 | 31 |
@Override |
33 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { |
|
34 |
|
|
32 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { |
|
35 | 33 |
response.setContentType("application/json"); |
36 | 34 |
response.setCharacterEncoding("UTF-8"); |
37 | 35 |
|
38 | 36 |
if (request.getSession().getAttribute("demo_id") == null) { |
39 |
|
|
40 | 37 |
String diagram_id = request.getParameter("diagramId"); |
41 | 38 |
|
42 | 39 |
if (diagram_id == null) { |
... | ... | |
66 | 63 |
|
67 | 64 |
return json.toString(); |
68 | 65 |
} |
69 |
return ""; |
|
66 |
|
|
67 |
return ""; // TODO: ugly fallback |
|
70 | 68 |
} |
71 | 69 |
|
72 | 70 |
/** |
73 | 71 |
* Return json of diagram which is taken from database. Permissions of user to this diagram is checked. |
74 | 72 |
*/ |
75 | 73 |
private String getDiagramById(HttpServletRequest request, int diagramId){ |
76 |
|
|
77 | 74 |
DB db = new DB(getServletContext()); |
78 | 75 |
Diagram diagram = new Diagram(db, diagramId); |
79 | 76 |
|
80 |
if(!diagram.isPublic()){ |
|
81 |
// Diagram is not public |
|
77 |
if (diagram.isPublic()) { |
|
78 |
return diagram.getJsonDiagram(); |
|
79 |
} |
|
80 |
|
|
81 |
// diagram is not public |
|
82 |
if (isLoggedIn(request)) { |
|
83 |
int loggedUserId = getUserId(request); |
|
82 | 84 |
|
83 |
if (!isLoggedIn(request) || diagram.getUserId() != getUserId(request)) {
|
|
84 |
return ""; // User is not logged in or is not owner of diagram
|
|
85 |
if (diagram.getUserId() == loggedUserId) {
|
|
86 |
return diagram.getJsonDiagram();
|
|
85 | 87 |
} |
86 | 88 |
} |
87 | 89 |
|
88 |
return diagram.getJsonDiagram(); |
|
90 |
// User is not logged in or is not owner of diagram |
|
91 |
return ""; // TODO: ugly fallback |
|
89 | 92 |
} |
90 | 93 |
|
91 | 94 |
/** |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/Register.java | ||
---|---|---|
59 | 59 |
errors.put("user_password", "Passwords must be at least 5 characters long."); |
60 | 60 |
} |
61 | 61 |
|
62 |
JSONObject json = new JSONObject(); |
|
63 |
|
|
64 | 62 |
if (errors.isEmpty()) { |
65 | 63 |
Map<String, String> userMap = new HashMap<>(); |
66 | 64 |
userMap.put("name", name); |
... | ... | |
74 | 72 |
response.setStatus(HttpServletResponse.SC_CREATED); |
75 | 73 |
|
76 | 74 |
} else { |
77 |
json.put("error", errors); |
|
78 |
response.setStatus(HttpServletResponse.SC_BAD_REQUEST); |
|
79 |
} |
|
75 |
JSONObject json = new JSONObject(); |
|
76 |
json.put("error", new JSONObject(errors)); |
|
80 | 77 |
|
81 |
response.setContentType("application/json"); |
|
82 |
response.getWriter().write(json.toString()); |
|
83 |
response.getWriter().flush(); |
|
78 |
response.setStatus(HttpServletResponse.SC_BAD_REQUEST); |
|
79 |
response.setContentType("application/json"); |
|
80 |
response.getWriter().write(json.toString()); |
|
81 |
response.getWriter().flush(); |
|
82 |
} |
|
84 | 83 |
} |
85 | 84 |
|
86 | 85 |
/** |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/RemoveDiagram.java | ||
---|---|---|
12 | 12 |
|
13 | 13 |
@Override |
14 | 14 |
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws IOException { |
15 |
|
|
16 | 15 |
if (!isLoggedIn(request)) { |
17 |
response.sendError(response.SC_UNAUTHORIZED);
|
|
16 |
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
|
18 | 17 |
return; |
19 | 18 |
} |
20 | 19 |
|
21 |
if(request.getParameter("diagram_id") == null){
|
|
22 |
response.sendError(response.SC_BAD_REQUEST);
|
|
20 |
if (request.getParameter("diagram_id") == null) {
|
|
21 |
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
|
23 | 22 |
return; |
24 | 23 |
} |
25 | 24 |
|
... | ... | |
29 | 28 |
DB db = new DB(getServletContext()); |
30 | 29 |
Diagram diagram = new Diagram(db, diagramId); |
31 | 30 |
|
32 |
if(diagram.getUserId() != loggedUserId){
|
|
33 |
response.sendError(response.SC_UNAUTHORIZED);
|
|
31 |
if (diagram.getUserId() != loggedUserId) {
|
|
32 |
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
|
34 | 33 |
return; |
35 | 34 |
} |
36 | 35 |
|
37 | 36 |
diagram.delete(); |
38 |
response.sendRedirect("/"); |
|
37 |
|
|
38 |
response.setStatus(HttpServletResponse.SC_NO_CONTENT); |
|
39 | 39 |
} |
40 | 40 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/SaveDiagram.java | ||
---|---|---|
16 | 16 |
|
17 | 17 |
@Override |
18 | 18 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { |
19 |
|
|
20 |
// user is not logged in |
|
21 | 19 |
if (!isLoggedIn(request)) { |
22 |
response.sendError(response.SC_UNAUTHORIZED);
|
|
20 |
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
|
23 | 21 |
return; |
24 | 22 |
} |
25 | 23 |
|
... | ... | |
32 | 30 |
|
33 | 31 |
// input parameters are invalid |
34 | 32 |
if (Strings.isNullOrEmpty(name) || Strings.isNullOrEmpty(graphJson)) { |
35 |
response.sendError(response.SC_BAD_REQUEST);
|
|
33 |
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
|
36 | 34 |
return; |
37 | 35 |
} |
38 | 36 |
|
... | ... | |
50 | 48 |
|
51 | 49 |
// user is not owner of the diagram |
52 | 50 |
if (loggedUserId != diagram.getUserId()) { |
53 |
response.sendError(response.SC_UNAUTHORIZED);
|
|
51 |
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
|
54 | 52 |
return; |
55 | 53 |
} |
56 | 54 |
} |
57 | 55 |
|
58 |
|
|
59 | 56 |
Map<String, String> diagramParams = new HashMap<>(); |
60 | 57 |
diagramParams.put("name", name); |
61 | 58 |
diagramParams.put("public", isPublic); |
Také k dispozici: Unified diff
minor servlet improvements