From a7c1f60a52a2bc2e4acbdbfe8c7617697f3c70ef Mon Sep 17 00:00:00 2001 From: Axel <wiepke@uni-potsdam.de> Date: Wed, 26 Sep 2018 10:18:57 +0200 Subject: [PATCH] fix: login works with sessions again --- .../gf/core/management/ManagementImpl.java | 16 ++++++---------- .../core/management/pageAppearance/HeadLine.java | 13 ++++++++++--- .../gf/core/management/pageAppearance/Menu.java | 11 ++++++++--- .../gf/core/management/project/ProjectView.java | 6 +++--- .../gf/core/management/user/HiddenUserTag.java | 2 +- .../core/management/user/SessionValidator.java | 2 +- .../gf/core/management/user/UserDAO.java | 8 ++++---- .../gf/core/management/user/UserService.java | 6 +----- .../assessment/controller/view/QuizView.java | 6 +++--- .../gf/modules/communication/ChatWindow.java | 2 +- .../service/CommunicationDummyService.java | 2 +- .../journal/service/JournalServiceImpl.java | 2 +- .../journal/service/ProjectDescriptionImpl.java | 2 +- .../src/main/webapp/core/overview-student.js | 4 ++-- .../gf/core/management/user/UserDAOTest.java | 2 +- .../src/test/resources/database/fltrail.sql | 3 ++- 16 files changed, 46 insertions(+), 41 deletions(-) diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java index c6c5c3f9..b37eaa31 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -12,8 +12,6 @@ import unipotsdam.gf.core.management.user.UserDAO; import unipotsdam.gf.core.management.user.UserInterests; import unipotsdam.gf.core.management.user.UserProfile; import unipotsdam.gf.core.management.util.ResultSetUtil; -import unipotsdam.gf.core.states.model.ProjectPhase; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.groupfinding.service.GroupDAO; import javax.annotation.ManagedBean; @@ -22,12 +20,10 @@ import javax.inject.Inject; import javax.inject.Singleton; import java.io.FileInputStream; import java.sql.Blob; -import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.UUID; /** * Created by dehne on 31.05.2018. @@ -139,8 +135,8 @@ public class ManagementImpl implements Management { } - public User getUserByToken(String token) { - return userDAO.getUserByToken(token); + public User getUserByToken(String email) { + return userDAO.getUserByEmail(email); } @@ -255,18 +251,18 @@ public class ManagementImpl implements Management { } @Override - public List<String> getProjectsStudent(String studentToken) { - if (studentToken == null) { + public List<String> getProjectsStudent(String studentEmail) { + if (studentEmail == null) { return null; } connect.connect(); String mysqlRequest = - "SELECT projectId FROM projectuser WHERE userId=?"; + "SELECT projectId FROM projectuser WHERE useremail=?"; //49c6eeda-62d2-465e-8832-dc2db27e760c List<String> result = new ArrayList<>(); - VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, studentToken); + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, studentEmail); while (vereinfachtesResultSet.next()) { String project = vereinfachtesResultSet.getString("projectId"); result.add(project); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/HeadLine.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/HeadLine.java index 57c99d95..d870e8f0 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/HeadLine.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/HeadLine.java @@ -3,6 +3,7 @@ package unipotsdam.gf.core.management.pageAppearance; import unipotsdam.gf.core.database.mysql.MysqlConnect; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.core.management.user.UserDAO; +import unipotsdam.gf.core.session.GFContexts; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspWriter; @@ -15,11 +16,17 @@ public class HeadLine extends SimpleTagSupport { public void doTag() throws IOException { PageContext pageContext = (PageContext) getJspContext(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - String projectId = request.getParameter("projectId"); - String token = request.getParameter("token"); + String userEmail = request.getSession().getAttribute(GFContexts.USEREMAIL).toString(); + String projectId; + try{ + projectId = request.getSession().getAttribute(GFContexts.PROJECTNAME).toString(); + }catch ( Exception e){ + projectId = null; + } + JspWriter out = getJspContext().getOut(); UserDAO userDAO = new UserDAO(new MysqlConnect()); - User user = userDAO.getUserByToken(token); + User user = userDAO.getUserByEmail(userEmail); Boolean isStudent = user.getStudent(); out.println("<div class=\"container-fluid\">\n" + " <table style=\"width:100%\">\n" + diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java index 3a194d7a..27a39988 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java @@ -23,7 +23,12 @@ public class Menu extends SimpleTagSupport { PageContext pageContext = (PageContext) getJspContext(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String userEmail = request.getSession().getAttribute(GFContexts.USEREMAIL).toString(); - String projectName = request.getSession().getAttribute(GFContexts.PROJECTNAME).toString(); + String projectName; + try { + projectName = request.getSession().getAttribute(GFContexts.PROJECTNAME).toString(); + } catch(Exception e){ + projectName = ""; + } ProjectPhase projectPhase; try { ProjectDAO projectDAO = new ProjectDAO(new MysqlConnect()); @@ -34,7 +39,7 @@ public class Menu extends SimpleTagSupport { JspWriter out = getJspContext().getOut(); UserDAO userDAO = new UserDAO(new MysqlConnect()); if (userEmail != null) { - User user = userDAO.getUserByToken(userEmail); + User user = userDAO.getUserByEmail(userEmail); Boolean isStudent = user.getStudent(); if (isStudent) { String menuString = "<div id=\"sidebar-wrapper\">\n" + @@ -123,7 +128,7 @@ public class Menu extends SimpleTagSupport { } if (projectName != null) out.println("<p id=\"projectName\" hidden>" + projectName + "</p>"); - User user = userDAO.getUserByToken(userEmail); + User user = userDAO.getUserByEmail(userEmail); if (user != null) out.println("<p id=\"userEmail\" hidden>" + user.getEmail() + "</p>"); out.println("<p id=\"hierarchyLevel\" hidden>" + hierarchyLevel.toString() + "</p>"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectView.java index c1970ed6..a4de5f93 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectView.java @@ -87,10 +87,10 @@ public class ProjectView { @GET @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.APPLICATION_JSON) - @Path("/all/student/{studentToken}") + @Path("/all/student/{studentEmail}") public java.util.List<String> getProjectsStudent( - @PathParam("studentToken") String studentToken) { - return iManagement.getProjectsStudent(studentToken); + @PathParam("studentEmail") String studentEmail) { + return iManagement.getProjectsStudent(studentEmail); } @GET diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java index 715c568c..5b5bfe52 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java @@ -23,7 +23,7 @@ public class HiddenUserTag extends SimpleTagSupport { HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String token = request.getParameter("token"); - User user = userDAO.getUserByToken(token); + User user = userDAO.getUserByEmail(token); JspWriter out = getJspContext().getOut(); out.println("<p id=\"user\" hidden>" + user.getName() + "</p>"); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java index d5f33ab1..6618cdc3 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java @@ -47,7 +47,7 @@ public class SessionValidator implements Filter { redirectToLogin(request, response); } - User user = userDAO.getUserByToken(token); + User user = userDAO.getUserByEmail(token); if (user == null) { redirectToLogin(request, response); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java index 01ed0681..4bbea36e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java @@ -106,14 +106,14 @@ public class UserDAO { return token; } - public User getUserByToken(String token) { - return getUserByField("token", token); - } - public User getUserByEmail(String email) { return getUserByField("email", email); } + public User getUserByToken(String token) { + return getUserByField("token", token); + } + private User getUserByField(String field, String value) { connect.connect(); String mysqlRequest = "SELECT * FROM users where " + field + " = ?"; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java index 27b85565..eacc8f09 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java @@ -1,7 +1,6 @@ package unipotsdam.gf.core.management.user; import unipotsdam.gf.core.management.Management; -import unipotsdam.gf.core.session.GFContext; import unipotsdam.gf.core.session.GFContexts; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.service.CommunicationDummyService; @@ -9,7 +8,6 @@ import unipotsdam.gf.modules.communication.service.CommunicationDummyService; import javax.annotation.ManagedBean; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.PageContext; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -18,7 +16,6 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; import java.io.File; import java.io.FileInputStream; import java.net.URI; @@ -141,8 +138,7 @@ public class UserService { } private User fillUserFields(User user) { - String token = userDAO.getUserToken(user); - user = userDAO.getUserByToken(token); + user = userDAO.getUserByEmail(user.getEmail()); return user; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java index b8253fa4..511cb57f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java @@ -125,9 +125,9 @@ public class QuizView { @GET @Produces(MediaType.APPLICATION_JSON) - @Path("/get/project/{projectId}/student/{studentId}") - public Double getAssessmentForStudent(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) { - StudentIdentifier student = new StudentIdentifier(projectId, studentId); + @Path("/get/project/{projectId}/student/{studentEmail}") + public Double getAssessmentForStudent(@PathParam("projectId") String projectId, @PathParam("studentEmail") String studentEmail) { + StudentIdentifier student = new StudentIdentifier(projectId, studentEmail); return peer.getAssessmentForStudent(student); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java index 366395ce..f1a0fb96 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java @@ -17,7 +17,7 @@ public class ChatWindow extends SimpleTagSupport { PageContext pageContext = (PageContext) getJspContext(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String token = request.getParameter("token"); - //User user = management.getUserByToken(token); + //User user = management.getUserByEmail(token); String groupToken = request.getParameter("groupToken"); String projectToken = request.getParameter("projectToken"); //get ProjetbyToken diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java index 9fa18319..96dc4ec1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java @@ -107,7 +107,7 @@ public class CommunicationDummyService implements ICommunication { } public String getChatRoomLink(String userToken, String projectToken, String groupToken) { - //User user = managementService.getUserByToken(userToken); + //User user = managementService.getUserByEmail(userToken); // TODO: Implement getProjectbyToken and getGroupByToken //Project project = managementService.getProject(projectToken String channelName = "general"; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java index d2107460..1541b989 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java @@ -123,7 +123,7 @@ public class JournalServiceImpl implements JournalService { ArrayList<User> users = new ArrayList<>(); for (String id : userId) { - users.add(userDAO.getUserByToken(id)); + users.add(userDAO.getUserByEmail(id)); } return users; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java index 312d664d..78ded8cb 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java @@ -90,7 +90,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { ArrayList<User> users = new ArrayList<>(); for (String id : userId) { - users.add(userDAO.getUserByToken(id)); + users.add(userDAO.getUserByEmail(id)); } return users; } diff --git a/gemeinsamforschen/src/main/webapp/core/overview-student.js b/gemeinsamforschen/src/main/webapp/core/overview-student.js index 9a9d08b4..85f6096f 100644 --- a/gemeinsamforschen/src/main/webapp/core/overview-student.js +++ b/gemeinsamforschen/src/main/webapp/core/overview-student.js @@ -1,5 +1,5 @@ $(document).ready(function(){ - let studentId = $('#user').html().trim(); + let studentId = $('#userEmail').html().trim(); getProjects(studentId); $('#enrollProject').on('click', function(){ location.href="management/join-project.jsp?token="+getUserEmail(); @@ -47,7 +47,7 @@ function updateStatus(projectId){ } function getGrade(projectId){ - let studentId = $('#user').html().trim(); + let studentId = $('#userEmail').html().trim(); $.ajax({ url: 'rest/assessments/get/project/'+projectId+'/student/'+studentId, headers: { diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java index cc1e1b17..e29c15bf 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java @@ -86,7 +86,7 @@ public class UserDAOTest { user.setStudent(false); userDAO.update(user); assertTrue(userDAO.exists(user)); - User managementUser = userDAO.getUserByToken(user.getToken()); + User managementUser = userDAO.getUserByEmail(user.getToken()); assertEquals(user.getStudent(), managementUser.getStudent()); } diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql index 3f675424..07602a72 100644 --- a/gemeinsamforschen/src/test/resources/database/fltrail.sql +++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql @@ -91,7 +91,8 @@ CREATE TABLE `projects` ( CREATE TABLE `projectuser` ( `projectId` varchar(400) NOT NULL, - `userId` varchar(400) NOT NULL + `useremail` varchar(400) NOT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT; ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `quiz` ( -- GitLab