From b8b2463c8403e7e0abc3b069b675c3db31875b49 Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Tue, 25 Sep 2018 15:43:39 +0200
Subject: [PATCH] feat: URL-stuff replaced by session

---
 .../core/management/pageAppearance/Menu.java  | 107 ++++++++++--------
 .../core/management/project/ProjectView.java  |  27 ++++-
 .../gf/core/management/user/UserService.java  |  29 +++--
 .../gf/core/session/GFContexts.java           |   6 +
 .../webapp/annotation/js/annotationScript.js  |   8 +-
 .../annotation/js/unstructuredAnnotation.js   |   8 +-
 .../annotation/js/unstructuredUpload.js       |   8 +-
 .../main/webapp/assessment/js/Quiz-docent.js  |   4 +-
 .../src/main/webapp/assessment/js/Quiz.js     |   4 +-
 .../main/webapp/assessment/js/assess-work.js  |   2 +-
 .../assessment/js/assessmentCalculator.js     |   2 +-
 .../main/webapp/assessment/js/create-quiz.js  |   4 +-
 .../webapp/assessment/js/rateContribution.js  |   2 +-
 .../main/webapp/assessment/js/take-quiz.js    |   2 +-
 .../main/webapp/assessment/js/view-quiz.js    |   2 +-
 .../src/main/webapp/core/footer.js            |   2 +-
 .../src/main/webapp/core/overview-docent.js   |   6 +-
 .../src/main/webapp/core/overview-student.js  |  73 ++++--------
 .../src/main/webapp/core/project-student.js   |  10 +-
 .../src/main/webapp/core/showProjects.js      |   2 +-
 .../src/main/webapp/core/templates.js         |  36 ------
 .../src/main/webapp/core/utility.js           |  49 ++------
 .../main/webapp/course/js/createProject.js    |   2 +-
 .../main/webapp/course/js/enrollProject.js    |   2 +-
 .../src/main/webapp/course/js/showProjects.js |   2 +-
 .../webapp/course/js/specificRequirement.js   |   2 +-
 .../main/webapp/course/js/specificSkills.js   |   2 +-
 .../main/webapp/feedback/js/peerfeedback.js   |   2 +-
 .../groupfinding/js/create-preferences.js     |   4 +-
 .../webapp/groupfinding/js/myGroupsInit.js    |   2 +-
 .../webapp/management/js/create-project.js    |   4 +-
 .../webapp/management/js/deleteProject.js     |   4 +-
 .../management/js/edit-group-settings.js      |  10 +-
 .../main/webapp/management/js/join-project.js |   2 +-
 .../src/main/webapp/management/js/overview.js |   2 +-
 .../researchReport/js/createReportOverview.js |   2 +-
 36 files changed, 197 insertions(+), 238 deletions(-)
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/core/session/GFContexts.java
 delete mode 100644 gemeinsamforschen/src/main/webapp/core/templates.js

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 24979038..3a194d7a 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
@@ -4,6 +4,7 @@ import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.management.project.ProjectDAO;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.management.user.UserDAO;
+import unipotsdam.gf.core.session.GFContexts;
 import unipotsdam.gf.core.states.model.ProjectPhase;
 
 import javax.servlet.http.HttpServletRequest;
@@ -21,55 +22,69 @@ public class Menu extends SimpleTagSupport {
         hierarchyLevel = getHierarchy();
         PageContext pageContext = (PageContext) getJspContext();
         HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
-        String token = request.getParameter("token");
-        String projectId = request.getParameter("projectId");
+        String userEmail = request.getSession().getAttribute(GFContexts.USEREMAIL).toString();
+        String projectName = request.getSession().getAttribute(GFContexts.PROJECTNAME).toString();
         ProjectPhase projectPhase;
         try {
             ProjectDAO projectDAO = new ProjectDAO(new MysqlConnect());
-            projectPhase = projectDAO.getProjectById(projectId).getPhase();
+            projectPhase = projectDAO.getProjectById(projectName).getPhase();
         } catch (Exception e) {
             projectPhase = null;
         }
         JspWriter out = getJspContext().getOut();
         UserDAO userDAO = new UserDAO(new MysqlConnect());
-        if (token != null) {
-            User user = userDAO.getUserByToken(token);
+        if (userEmail != null) {
+            User user = userDAO.getUserByToken(userEmail);
             Boolean isStudent = user.getStudent();
             if (isStudent) {
                 String menuString = "<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
-                        "            <li class=\"sidebar-brand\"><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "overview-student.jsp?token=" + token + "&projectId=" + projectId + "\">overview</a></li>\n" +
-                        "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "profile/profile.jsp?token=" + token + "&projectId=" + projectId + "\">Profil</a></li>\n";
+                        "            <li class=\"sidebar-brand\"><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "overview-student.jsp?token=" + userEmail + "&projectId=" + projectName + "\">overview</a></li>\n" +
+                        "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "profile/profile.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Profil</a></li>\n";
                 if (projectPhase != null) {
-                    if (projectPhase.equals(ProjectPhase.CourseCreation)) {
-                        menuString += "      <li><p>Quizfrage</p></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + token + "&projectId=" + projectId + "\">ePortfolio</a></li>\n" +
-                                "            <li><p>Beitrag</p></li>\n" +
-                                "            <li><p>Bewertung</p></li>\n";
-                    }
-                    if (projectPhase.equals(ProjectPhase.GroupFormation)) {
-                        menuString += "      <li><p>Quizfrage</p></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + token + "&projectId=" + projectId + "\">ePortfolio</a></li>\n" +
-                                "            <li><p>Beitrag</p></li>\n" +
-                                "            <li><p>Bewertung</p></li>\n";
-                    }
-                    if (projectPhase.equals(ProjectPhase.DossierFeedback)) {
-                        menuString += "      <li><p>Quizfrage</p></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + token + "&projectId=" + projectId + "\">ePortfolio</a></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "researchReport/create-title.jsp?token=" + token + "&projectId=" + projectId + "\">Beitrag</a></li>\n" +
-                                "            <li><p>Bewertung</p></li>\n";
-                    }
-                    if (projectPhase.equals(ProjectPhase.Execution)) {
-                        menuString += "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/Quiz.jsp?token=" + token + "&projectId=" + projectId + "\">Quizfrage</a></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + token + "&projectId=" + projectId + "\">ePortfolio</a></li>\n" +
-                                "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "researchReport/create-title.jsp?token=" + token + "&projectId=" + projectId + "\">Beitrag</a></li>\n" +
-                                "            <li><p>Bewertung</p></li>\n";
-                    }
-                    if (projectPhase.equals(ProjectPhase.Assessment)) {
-                        menuString += "      <li><p>Quizfrage</p></li>\n" +
-                                "            <li><p>ePortfolio</p></li>\n" +
-                                "            <li><p>Beitrag</p></li>\n" +
-                                "            <li><a id=\"assessment\" style=\"cursor:pointer\">Bewertung</a></li>\n";
+                    switch (projectPhase){
+                        case CourseCreation:{
+                            menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + userEmail + "&projectId=" + projectName + "\">ePortfolio</a></li>\n" +
+                                    "            <li><p>Beitrag</p></li>\n" +
+                                    "            <li><p>Bewertung</p></li>\n";
+                            break;
+                        }
+                        case GroupFormation:{
+                            menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + userEmail + "&projectId=" + projectName + "\">ePortfolio</a></li>\n" +
+                                    "            <li><p>Beitrag</p></li>\n" +
+                                    "            <li><p>Bewertung</p></li>\n";
+                            break;
+                        }
+                        case DossierFeedback:{
+                            menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + userEmail + "&projectId=" + projectName + "\">ePortfolio</a></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "researchReport/create-title.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Beitrag</a></li>\n" +
+                                    "            <li><p>Bewertung</p></li>\n";
+                            break;
+                        }
+                        case Execution:{
+                            menuString += "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/Quiz.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Quizfrage</a></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "journal/eportfolio.jsp?token=" + userEmail + "&projectId=" + projectName + "\">ePortfolio</a></li>\n" +
+                                    "            <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "researchReport/create-title.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Beitrag</a></li>\n" +
+                                    "            <li><p>Bewertung</p></li>\n";
+                            break;
+                        }
+                        case Assessment:{
+                            menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                    "            <li><p>ePortfolio</p></li>\n" +
+                                    "            <li><p>Beitrag</p></li>\n" +
+                                    "            <li><a id=\"assessment\" style=\"cursor:pointer\">Bewertung</a></li>\n";
+                            break;
+                        }
+                        case Projectfinished:{
+                            menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                    "            <li><p>ePortfolio</p></li>\n" +
+                                    "            <li><p>Beitrag</p></li>\n" +
+                                    "            <li><p>Bewertung</p></li>\n";
+                            break;
+                        }
                     }
                 }
 
@@ -82,16 +97,16 @@ public class Menu extends SimpleTagSupport {
             } else {
                 String menuString = "<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
-                        "            <li class=\"sidebar-brand\"><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "overview-docent.jsp?token=" + token + "&projectId=" + projectId + "\">overview</a></li>\n";
+                        "            <li class=\"sidebar-brand\"><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "overview-docent.jsp?token=" + userEmail + "&projectId=" + projectName + "\">overview</a></li>\n";
                 if (projectPhase != null) {
                     if (!projectPhase.equals(ProjectPhase.GroupFormation)) {
-                        menuString += "<li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/Quiz-docent.jsp?token=" + token + "&projectId=" + projectId + "\">Quizfrage</a></li>\n" +
+                        menuString += "<li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/Quiz-docent.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Quizfrage</a></li>\n" +
                                 "      <li><p>Gruppen erstellen</p></li>\n" +
-                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "management/change-phase.jsp?token=" + token + "&projectId=" + projectId + "\">Projektphase ändern</a></li>\n";
+                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "management/change-phase.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Projektphase ändern</a></li>\n";
                     } else {
-                        menuString += "<li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/quiz-docent.jsp?token=" + token + "&projectId=" + projectId + "\">Quizfrage</a></li>\n" +
-                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "groupfinding/create-groups.jsp?token=" + token + "&projectId=" + projectId + "\">Gruppen erstellen</a></li>\n" +
-                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "management/change-phase.jsp?token=" + token + "&projectId=" + projectId + "\">Projektphase ändern</a></li>\n";
+                        menuString += "<li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "assessment/quiz-docent.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Quizfrage</a></li>\n" +
+                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "groupfinding/create-groups.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Gruppen erstellen</a></li>\n" +
+                                "      <li><a href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "management/change-phase.jsp?token=" + userEmail + "&projectId=" + projectName + "\">Projektphase ändern</a></li>\n";
                     }
                 }
                 menuString += "<li><a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" +
@@ -106,11 +121,11 @@ public class Menu extends SimpleTagSupport {
                     "</div>");
             //in active System this will be the point to redirect to index.jsp, because token is "wrong"
         }
-        if (projectId != null)
-            out.println("<p id=\"projectId\" hidden>" + projectId + "</p>");
-        User user = userDAO.getUserByToken(token);
+        if (projectName != null)
+            out.println("<p id=\"projectName\" hidden>" + projectName + "</p>");
+        User user = userDAO.getUserByToken(userEmail);
         if (user != null)
-            out.println("<p id=\"user\" hidden>" + user.getName() + "</p>");
+            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 e174eee6..c1970ed6 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
@@ -2,11 +2,16 @@ package unipotsdam.gf.core.management.project;
 
 import unipotsdam.gf.core.management.Management;
 import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.session.GFContexts;
 
 import javax.annotation.ManagedBean;
 import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.net.URI;
 import java.net.URISyntaxException;
 
 
@@ -22,18 +27,38 @@ public class ProjectView {
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.TEXT_PLAIN)
     @Path("/create")
-    public String createProject(Project project) throws URISyntaxException {
+    public String createProject(@Context HttpServletRequest req, Project project) throws URISyntaxException {
         // we assume the token is send not the author id
         String authorToken = project.getAuthorEmail();
         User userByToken = iManagement.getUserByToken(authorToken);
         project.setAuthorEmail(userByToken.getId());
         try {
             String projectToken = iManagement.create(project);
+            req.getSession().setAttribute(GFContexts.PROJECTNAME, project.getId());
             return projectToken;
         } catch (Exception e) {
             return "project exists";
         }
+    }
+
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/view/project/{projectName}")
+    public Response viewProject(@Context HttpServletRequest req, @PathParam("projectName") String projectName) throws URISyntaxException {
+        // we assume the token is send not the author id
+        req.getSession().setAttribute(GFContexts.PROJECTNAME, projectName);
+        String userEmail = req.getSession().getAttribute(GFContexts.USEREMAIL).toString();
+        User user = iManagement.getUserByToken(userEmail);
+        if (user.getStudent()){
+            return forwardToLocation("project-student.jsp");
+        }else{
+            return forwardToLocation("project-docent.jsp");
+        }
+
+    }
 
+    private Response forwardToLocation(String existsUrl) throws URISyntaxException {
+        return Response.seeOther(new URI(existsUrl)).build();
     }
 
     @GET
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 c38d65b9..27b85565 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,18 +1,24 @@
 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;
 
 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;
 import javax.ws.rs.PathParam;
 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;
@@ -50,12 +56,12 @@ public class UserService {
     @POST
     @Produces(MediaType.TEXT_HTML)
     @Path("/create")
-    public Response createUser(@FormParam("name") String name, @FormParam("password") String password,
+    public Response createUser(@Context HttpServletRequest req, @FormParam("name") String name, @FormParam("password") String password,
                                @FormParam("email") String email, @FormParam("isStudent") String isStudent)
             throws URISyntaxException {
 
         User user = new User(name, password, email, isStudent == null);
-        return login(true, user);
+        return login(req,true, user);
 
     }
 
@@ -72,7 +78,7 @@ public class UserService {
     @POST
     @Produces(MediaType.TEXT_HTML)
     @Path("/exists")
-    public Response existsUser(@FormParam("name") String name, @FormParam("password") String password,
+    public Response existsUser(@Context HttpServletRequest req, @FormParam("name") String name, @FormParam("password") String password,
                                @FormParam("email") String email)
             throws URISyntaxException {
 
@@ -80,7 +86,7 @@ public class UserService {
         ICommunication iCommunication = new CommunicationDummyService();
         boolean isLoggedIn = iCommunication.loginUser(user);
         if (isLoggedIn) {
-            return login(false, user);
+            return login(req,false, user);
         } else {
             return loginError();
         }
@@ -108,12 +114,12 @@ public class UserService {
      * @return
      * @throws URISyntaxException
      */
-    protected Response login(boolean createUser, User user) throws URISyntaxException {
+    protected Response login(HttpServletRequest req, boolean createUser, User user) throws URISyntaxException {
 
         if (management.exists(user)) {
             if (!createUser) {
                 user = fillUserFields(user);
-                return redirectToProjectPage(user);
+                return redirectToProjectPage(req,user);
             }
             String existsUrl = "../register.jsp?userExists=true";
             return forwardToLocation(existsUrl);
@@ -125,7 +131,7 @@ public class UserService {
                 }
                 management.create(user, null);
                 user = fillUserFields(user);
-                return redirectToProjectPage(user);
+                return redirectToProjectPage(req,user);
             } else {
                 String existsUrl = "../index.jsp?userExists=false";
                 return forwardToLocation(existsUrl);
@@ -157,15 +163,20 @@ public class UserService {
      * @return
      * @throws URISyntaxException
      */
-    private Response redirectToProjectPage(User user) throws URISyntaxException {
+    private Response redirectToProjectPage(HttpServletRequest req, User user) throws URISyntaxException {
         String successUrl;
+
+
         if (user.getStudent() != null && user.getStudent()) {
             successUrl = "../overview-student.jsp?token=";
         } else {
             successUrl = "../overview-docent.jsp?token=";
         }
         successUrl += userDAO.getUserToken(user);
-        return forwardToLocation(successUrl);
+        Response result =  forwardToLocation(successUrl);
+
+        req.getSession().setAttribute(GFContexts.USEREMAIL, user.getEmail());
+        return result;
     }
 
     /**
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/session/GFContexts.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/session/GFContexts.java
new file mode 100644
index 00000000..b954476b
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/session/GFContexts.java
@@ -0,0 +1,6 @@
+package unipotsdam.gf.core.session;
+
+public class GFContexts {
+    public static final String USEREMAIL = "userEmail";
+    public static final String PROJECTNAME = "projectName";
+}
diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/annotationScript.js b/gemeinsamforschen/src/main/webapp/annotation/js/annotationScript.js
index 892ea941..8fb86847 100644
--- a/gemeinsamforschen/src/main/webapp/annotation/js/annotationScript.js
+++ b/gemeinsamforschen/src/main/webapp/annotation/js/annotationScript.js
@@ -68,14 +68,14 @@ $(document).ready(function() {
      * continue button
      */
     $('#btnContinue').click(function () {
-        location.href = "../feedback/give-feedback.jsp?token=" + getUserTokenFromUrl();
+        location.href = "../feedback/give-feedback.jsp?token=" + getUserEmail();
     });
 
     /**
      * back button
      */
     $('#btnBack').click(function () {
-        location.href = "../project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+        location.href = "../project-student.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
     });
 
     /**
@@ -354,7 +354,7 @@ function displayAnnotation(annotation) {
                             .append(
                                 // edit
                                 function () {
-                                    if (getUserTokenFromUrl() === annotation.userToken) {
+                                    if (getUserEmail() === annotation.userToken) {
                                         return $('<div>').attr('class', 'annotation-footer-edit')
                                             .append(
                                                 $('<i>').attr('class', editIcon)
@@ -637,7 +637,7 @@ function saveNewAnnotation(title, comment, startCharacter, endCharacter) {
     // initialize target
     let targetId = getQueryVariable("fullSubmissionId");
     let targetCategory = getQueryVariable("category");
-    let userToken = getUserTokenFromUrl();
+    let userToken = getUserEmail();
 
     // build annotationPostRequest
     var annotationPostRequest = {
diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js
index 49f9968f..a19e1879 100644
--- a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js
+++ b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js
@@ -26,7 +26,7 @@ $(document).ready(function () {
 
     }, function () {
         // jump to upload page on error
-        location.href = "upload-unstructured-annotation.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+        location.href = "upload-unstructured-annotation.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
     });
 
     // set click listener to save button
@@ -255,7 +255,7 @@ function saveButtonHandler() {
                 // initialize the post request
                 let category = $(this).attr('id').toUpperCase();
                 let submissionPartPostRequest = {
-                    userId: getUserTokenFromUrl(),
+                    userId: getUserEmail(),
                     fullSubmissionId: getSubmissionIdFromUrl(),
                     category: category,
                     body: []
@@ -285,11 +285,11 @@ function saveButtonHandler() {
 
         $.when.apply($, promises).then(function () {
             // redirect user to project page after saving
-            location.href = "../project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+            location.href = "../project-student.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
         });
 
         // redirect user to project page after saving
-        // location.href="project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getProjectIdFromUrl();
+        // location.href="project-student.jsp?token=" + getUserEmail() + "&projectId=" + getProjectIdFromUrl();
     }
 }
 
diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredUpload.js b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredUpload.js
index f1a8dea6..d8faf1e6 100644
--- a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredUpload.js
+++ b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredUpload.js
@@ -7,7 +7,7 @@ $(document).ready(function () {
         if ($('#upload-textarea-form').valid()) {
 
             // fetch user and text
-            let user = getUserTokenFromUrl();
+            let user = getUserEmail();
             let text = $('#upload-textarea').val();
 
             // build request
@@ -23,7 +23,7 @@ $(document).ready(function () {
                 $('#upload-textarea').val("");
 
                 // jump to next page
-                location.href = "create-unstructured-annotation.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId") + "&submission=" + response.id;
+                location.href = "create-unstructured-annotation.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId") + "&submission=" + response.id;
             });
         }
     });
@@ -38,14 +38,14 @@ $(document).ready(function () {
 
                 // jump to previous page
                 //window.history.back();
-                location.href = "../project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+                location.href = "../project-student.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
             }
         }
         // nothing to check
         else {
             // jump to previous page
             //window.history.back();
-            location.href = "../project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+            location.href = "../project-student.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
         }
     });
 
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/Quiz-docent.js b/gemeinsamforschen/src/main/webapp/assessment/js/Quiz-docent.js
index 2e7f693c..6e52edcf 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/Quiz-docent.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/Quiz-docent.js
@@ -1,6 +1,6 @@
 $(document).ready(function () {
     $('#newQuiz').on('click', function () {
-        location.href = "create-quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+        location.href = "create-quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
     });
 
     let loading = $('#loadbar').hide();
@@ -78,7 +78,7 @@ $(document).ready(function () {
             url: '../rest/assessments/quiz/' + encodeURIComponent(event.data.quizId),
             type: 'POST',
             success: function () {
-                document.location.href = "quiz-docent.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                document.location.href = "quiz-docent.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
             },
             error: function (a) {
                 alert(a)
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assessment/js/Quiz.js
index 3dc2a2b6..50f1d3bd 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/Quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/Quiz.js
@@ -14,7 +14,7 @@ $(document).ready(function () {
                 trQuestion.className = "pageChanger";
                 trQuestion.innerHTML = '<td colspan="' + colspan + '"><h3>' +
                     '<a href="view-quiz.jsp' +
-                    '?token=' + getUserTokenFromUrl() +
+                    '?token=' + getUserEmail() +
                     '&projectId=' + projectId +
                     '&quizId=' + encodeURIComponent(data[quiz].question) + '"</a>' +
                     data[quiz].question + '</h3></td>';
@@ -27,6 +27,6 @@ $(document).ready(function () {
     });
 
     $('#newQuiz').on('click', function () {
-        location.href = "create-quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+        location.href = "create-quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
     });
 });
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/assess-work.js b/gemeinsamforschen/src/main/webapp/assessment/js/assess-work.js
index 7315cef8..ed6e28db 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/assess-work.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/assess-work.js
@@ -172,7 +172,7 @@ function assessPeer() {
         },
         data: JSON.stringify(dataP),
         success: function () {
-            location.href = "take-quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+            location.href = "take-quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
         },
         error: function (a, b, c) {
 
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/assessmentCalculator.js b/gemeinsamforschen/src/main/webapp/assessment/js/assessmentCalculator.js
index 7e1ecd5f..548859e3 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/assessmentCalculator.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/assessmentCalculator.js
@@ -6,7 +6,7 @@ $(document).ready(function () {     //todo: paths should be relative
             success: function (data) {
                 alert("here is the TotalPerformance: " + data);
 
-                location.href="../pages/project-student.jsp?token="+getUserTokenFromUrl();
+                location.href="../pages/project-student.jsp?token="+getUserEmail();
             },
             error: function (a, b, c) {
                 alert('some error' + a);
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/create-quiz.js b/gemeinsamforschen/src/main/webapp/assessment/js/create-quiz.js
index adbf424a..dbc772d8 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/create-quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/create-quiz.js
@@ -60,10 +60,10 @@ $(document).ready(function () {
             type: 'POST',
             success: function (response) {
                 if (response === "student") {
-                    location.href = "Quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    location.href = "Quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
                 }
                 if (response === "docent") {
-                    location.href = "Quiz-docent.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    location.href = "Quiz-docent.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
                 }
 
             },
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/assessment/js/rateContribution.js
index 028b0311..40f2e0f1 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/rateContribution.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/rateContribution.js
@@ -62,7 +62,7 @@ function safeContributionRating() {
         },
         data: JSON.stringify(dataP),
         success: function () {
-            location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+            location.href = "project-student.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
         },
         error: function (a, b, c) {
 
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/take-quiz.js b/gemeinsamforschen/src/main/webapp/assessment/js/take-quiz.js
index 07c83920..344bfe5d 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/take-quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/take-quiz.js
@@ -110,7 +110,7 @@ function safeQuizAnswers() {
         },
         data: JSON.stringify(dataP),
         success: function () {
-            location.href = "rate-contribution.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+            location.href = "rate-contribution.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
         },
         error: function (a, b, c) {
 
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/view-quiz.js b/gemeinsamforschen/src/main/webapp/assessment/js/view-quiz.js
index ec607d7d..3d0fe721 100644
--- a/gemeinsamforschen/src/main/webapp/assessment/js/view-quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/view-quiz.js
@@ -67,7 +67,7 @@ $(document).ready(function () {
             url: '../rest/assessments/quiz/' + encodeURIComponent(quizId),
             type: 'POST',
             success: function () {
-                document.location.href = "quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                document.location.href = "quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim();
             },
             error: function (a) {
                 alert(a)
diff --git a/gemeinsamforschen/src/main/webapp/core/footer.js b/gemeinsamforschen/src/main/webapp/core/footer.js
index 6e3cfcbb..923c00fd 100644
--- a/gemeinsamforschen/src/main/webapp/core/footer.js
+++ b/gemeinsamforschen/src/main/webapp/core/footer.js
@@ -1,6 +1,6 @@
 $(document).ready(function () {
     $('#btnUnstructuredUpload').click(function () {
-        location.href = "annotation/upload-unstructured-annotation.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId");
+        location.href = "annotation/upload-unstructured-annotation.jsp?token=" + getUserEmail() + "&projectId=" + getQueryVariable("projectId");
     });
 
 });
diff --git a/gemeinsamforschen/src/main/webapp/core/overview-docent.js b/gemeinsamforschen/src/main/webapp/core/overview-docent.js
index 147a6bab..a2274f9f 100644
--- a/gemeinsamforschen/src/main/webapp/core/overview-docent.js
+++ b/gemeinsamforschen/src/main/webapp/core/overview-docent.js
@@ -1,12 +1,12 @@
 $(document).ready(function(){
     $('#project1Link').on('click', function(){
-        location.href = "project-docent.jsp?token=" + getUserTokenFromUrl() + '&projectId=' + 'gemeinsamForschen';
+        location.href = "project-docent.jsp?token=" + getUserEmail() + '&projectId=' + 'gemeinsamForschen';
     });
     $('#project2Link').on('click', function(){
-        location.href = "project-docent.jsp?token=" + getUserTokenFromUrl() + '&projectId=' + 'Kaleo';
+        location.href = "project-docent.jsp?token=" + getUserEmail() + '&projectId=' + 'Kaleo';
     });
     $('#createProject').on('click', function(){
-        location.href="./management/create-project.jsp?token="+getUserTokenFromUrl();
+        location.href="./management/create-project.jsp?token="+getUserEmail();
     });
 
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/core/overview-student.js b/gemeinsamforschen/src/main/webapp/core/overview-student.js
index 45ea5aeb..9a9d08b4 100644
--- a/gemeinsamforschen/src/main/webapp/core/overview-student.js
+++ b/gemeinsamforschen/src/main/webapp/core/overview-student.js
@@ -2,7 +2,7 @@ $(document).ready(function(){
     let studentId = $('#user').html().trim();
     getProjects(studentId);
     $('#enrollProject').on('click', function(){
-        location.href="management/join-project.jsp?token="+getUserTokenFromUrl();
+        location.href="management/join-project.jsp?token="+getUserEmail();
     });
 });
 
@@ -78,21 +78,15 @@ function getProjects(studentId){
                     tmplObject.push({projectName: response[project]});
             }
             $('#projectTRTemplate').tmpl(tmplObject).appendTo('#projects');
+            for (let projectName in response){
+                if (response.hasOwnProperty(projectName)) {
+                    $('#project' + response[projectName]).on('click', function () {
+                        viewProject(response[projectName]);
+                    });
+                    updateStatus(response[projectName]);
 
-
-/*
-            let projectTable = document.getElementById('projects');
-            for (let i=0; i<response.length; i++){
-                let projectName = response[i];
-                let projectDiv = document.createElement('DIV');
-                let projectTRString = nameToTableString(projectName);
-                projectDiv.innerHTML=projectTRString;
-                projectTable.appendChild(projectDiv);
-                updateStatus(projectName);
-                $('#project'+projectName).on('click', function(){
-                    location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + '&projectId=' + projectName;
-                });
-            }*/
+                }
+            }
         },
         error: function(a){
 
@@ -100,41 +94,18 @@ function getProjects(studentId){
     });
 }
 
-function nameToTableString(projectName){
-    return'<tr class="pageChanger">'+
-        '   <td>'+
-        '       <a id="project'+projectName+'">'+
-        '       <h1>'+projectName+'</h1>'+
-        '       </a>'+
-        '   </td>'+
-        '</tr>'+
-        '<tr>'+
-        '   <td>'+
-        '       <div class="panel panel-default">'+
-        '           <div class="panel-heading">'+
-        '               <h3 class="panel-title">Newsfeed </h3>'+
-        '               Status: <p id="status'+projectName+'"></p>'+
-        '           </div>'+
-        '           <div class="panel-body">'+
-        '               <ul class="list-group">'+
-        newsFeedMessages(projectName)+
-        '              </ul>'+
-        '          </div>'+
-        '      </div>'+
-        '   </td>'+
-        '</tr>'+
-        '<tr>'+
-        '   <td></td>'+
-        '</tr>';
-}
+function viewProject(projectName){
+    $.ajax({
+        url: 'rest/project/view/project/' + projectName,
+        headers: {
+            "Content-Type": "text/plain",
+            "Cache-Control": "no-cache"
+        },
+        type: 'POST',
+        success: function (response) {
 
-function newsFeedMessages(projectName){
-    return'                       <li class="list-group-item">'+
-    '                           <span>dummy</span>'+
-    '                       </li>'+
-    '                       <li class="list-group-item">' +
-    '                           <span>dummy</span>'+
-    '                       </li>'+
-    '                       <li class="list-group-item">'+
-    '                           <span>dummy</span></li>';
+        },
+        error: function(a){
+        }
+    });
 }
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/core/project-student.js b/gemeinsamforschen/src/main/webapp/core/project-student.js
index a328ca3f..39207f95 100644
--- a/gemeinsamforschen/src/main/webapp/core/project-student.js
+++ b/gemeinsamforschen/src/main/webapp/core/project-student.js
@@ -11,7 +11,7 @@ $(document).ready(function () {
         $('.annotationview').click(function () {
             let fullSubmissionId = $(this).closest("li").data("fullSubmissionId");
             let category = $(this).closest("li").data("category");
-            location.href = "annotation/annotation-document.jsp?token=" + getUserTokenFromUrl() +
+            location.href = "annotation/annotation-document.jsp?token=" + getUserEmail() +
                 "&projectId=" + getQueryVariable("projectId") +
                 "&fullSubmissionId=" + fullSubmissionId +
                 "&category=" + category;
@@ -30,18 +30,18 @@ $(document).ready(function () {
     });
     */
     $('.givefeedback').click(function () {
-        location.href = "feedback/give-feedback.jsp?token=" + getUserTokenFromUrl();
+        location.href = "feedback/give-feedback.jsp?token=" + getUserEmail();
     });
     $('.viewfeedback').click(function () {
-        location.href = "feedback/view-feedback.jsp?token=" + getUserTokenFromUrl();
+        location.href = "feedback/view-feedback.jsp?token=" + getUserEmail();
     });
 
     $('.annotationview').click(function () {
-        location.href = "annotation/annotation-document.jsp?token=" + getUserTokenFromUrl();
+        location.href = "annotation/annotation-document.jsp?token=" + getUserEmail();
     });
 
     $('.viewprojectstudent').click(function () {
-        location.href = "project-student.jsp?token=" + getUserTokenFromUrl();
+        location.href = "project-student.jsp?token=" + getUserEmail();
     })
 });
 
diff --git a/gemeinsamforschen/src/main/webapp/core/showProjects.js b/gemeinsamforschen/src/main/webapp/core/showProjects.js
index c7671760..6fdf9798 100644
--- a/gemeinsamforschen/src/main/webapp/core/showProjects.js
+++ b/gemeinsamforschen/src/main/webapp/core/showProjects.js
@@ -35,7 +35,7 @@ function seeProject(projectName) {
                     $("#projectIsMissing").show();
                 } else {
                     if (response !== "wrong password") {            //if response !== project missing and not wrong password, its the projectToken
-                        location.href="preferences.php?token="+getUserTokenFromUrl()+"&projectToken="+response;
+                        location.href="preferences.php?token="+getUserEmail()+"&projectToken="+response;
                     } else {
                         $("#projectIsMissing").hide();
                         $('#projectWrongPassword').show();
diff --git a/gemeinsamforschen/src/main/webapp/core/templates.js b/gemeinsamforschen/src/main/webapp/core/templates.js
deleted file mode 100644
index 571f40f6..00000000
--- a/gemeinsamforschen/src/main/webapp/core/templates.js
+++ /dev/null
@@ -1,36 +0,0 @@
-Templates={};
-
-Templates.projectTableTR =[
-    '<tr class="pageChanger">',
-    '   <td>',
-    '       <a id="project&{projectName}">',
-    '       <h1>${projectName}</h1>',
-    '       </a>',
-    '   </td>',
-    '</tr>',
-    '<tr>',
-    '   <td>',
-    '       <div class="panel panel-default">',
-    '           <div class="panel-heading">',
-    '               <h3 class="panel-title">Newsfeed </h3>',
-    '               Status: <p id="status${projectName}"></p>',
-    '           </div>',
-    '           <div class="panel-body">',
-    '               <ul class="list-group">',
-    '                       <li class="list-group-item">',
-    '                           <span>dummy</span>',
-    '                       </li>',
-    '                       <li class="list-group-item">' ,
-    '                           <span>dummy</span>',
-    '                       </li>',
-    '                       <li class="list-group-item">',
-    '                           <span>dummy</span></li>',
-    '              </ul>',
-    '          </div>',
-    '      </div>',
-    '   </td>',
-    '</tr>',
-    '<tr>',
-    '   <td></td>',
-    '</tr>'
-].join("\n");
diff --git a/gemeinsamforschen/src/main/webapp/core/utility.js b/gemeinsamforschen/src/main/webapp/core/utility.js
index bcc25517..eaf9732d 100644
--- a/gemeinsamforschen/src/main/webapp/core/utility.js
+++ b/gemeinsamforschen/src/main/webapp/core/utility.js
@@ -17,7 +17,6 @@ $(document).ready(function () {
 function changeLocationTo(target) {
     let level = $('#hierarchyLevel').html().trim();
     return calculateHierachy(level) + target;
-    ;
 }
 
 
@@ -38,19 +37,19 @@ function checkAssessementPhase() {
         success: function (phase) {
             switch (phase) {
                 case "workRating": {
-                    changeLocationTo("finalAssessment.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim());
+                    changeLocationTo("finalAssessment.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim());
                     break;
                 }
                 case "quiz": {
-                    changeLocationTo("take-quiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim());
+                    changeLocationTo("take-quiz.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim());
                     break;
                 }
                 case "contributionRating": {
-                    changeLocationTo("rate-contribution.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim());
+                    changeLocationTo("rate-contribution.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim());
                     break;
                 }
                 case "done": {
-                    changeLocationTo("project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim());
+                    changeLocationTo("project-student.jsp?token=" + getUserEmail() + "&projectId=" + $('#projectId').html().trim());
                     break;
                 }
             }
@@ -60,26 +59,13 @@ function checkAssessementPhase() {
     });
 }
 
-function getUserTokenFromUrl() {
-    let parts = window.location.search.substr(1).split("&");
-    let $_GET = {};
-    for (let i = 0; i < parts.length; i++) {
-        let temp = parts[i].split("=");
-        $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
-    }
-    return $_GET['token'];
-
+function getUserEmail() {
+    return $('#userEmail').html().trim();
 }
 
 
-function getProjectTokenFromUrl() {
-    let parts = window.location.search.substr(1).split("&");
-    let $_GET = {};
-    for (let i = 0; i < parts.length; i++) {
-        let temp = parts[i].split("=");
-        $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
-    }
-    return $_GET['projectToken'];
+function getProjectName() {
+    return $('#projectName').html().trim();
 }
 
 function getQueryVariable(variable) {
@@ -106,23 +92,4 @@ function calculateHierachy(level) {
         return calculateHierachy(level - 1) + "../";
 
     }
-}
-
-function getContextData(callback) {
-    var userToken = getUserTokenFromUrl();
-    var projectToken = getProjectTokenFromUrl();
-
-    var url = "../../gemeinsamforschen/rest/context/full?projectToken=" + getProjectTokenFromUrl() + "&userToken=" + getUserTokenFromUrl();
-    $.ajax({
-        url: url,
-        type: 'GET',
-        Accept: "contentType: application/json",
-        success: function (response) {
-            callback(response);
-        },
-        error: function (a, b, c) {
-            console.log(a+b+c);
-        }
-    });
-
 }
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/course/js/createProject.js b/gemeinsamforschen/src/main/webapp/course/js/createProject.js
index 20389fcf..2f6d9b27 100644
--- a/gemeinsamforschen/src/main/webapp/course/js/createProject.js
+++ b/gemeinsamforschen/src/main/webapp/course/js/createProject.js
@@ -1,6 +1,6 @@
 $(document).ready(function () {
     $('#submit').on('click', function () {
-        location.href = "specificRequirement.jsp?token=" + getUserTokenFromUrl();
+        location.href = "specificRequirement.jsp?token=" + getUserEmail();
     });
     let projectId = $('#projectId').html().trim();
     $.ajax({
diff --git a/gemeinsamforschen/src/main/webapp/course/js/enrollProject.js b/gemeinsamforschen/src/main/webapp/course/js/enrollProject.js
index 5969e8ae..827e6651 100644
--- a/gemeinsamforschen/src/main/webapp/course/js/enrollProject.js
+++ b/gemeinsamforschen/src/main/webapp/course/js/enrollProject.js
@@ -1,5 +1,5 @@
 $(document).ready(function () {
     $('#submit').on('click',function(){
-        document.location="specificSkills.jsp?token="+getUserTokenFromUrl();
+        document.location="specificSkills.jsp?token="+getUserEmail();
     });
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/course/js/showProjects.js b/gemeinsamforschen/src/main/webapp/course/js/showProjects.js
index c2bd9a13..b84fc3e1 100644
--- a/gemeinsamforschen/src/main/webapp/course/js/showProjects.js
+++ b/gemeinsamforschen/src/main/webapp/course/js/showProjects.js
@@ -35,7 +35,7 @@ function seeProject(projectName) {
                     $("#projectIsMissing").show();
                 } else {
                     if (response !== "wrong password") {            //if response !== project missing and not wrong password, its the projectToken
-                        location.href = "enter-preferences.jsp?token=" + getUserTokenFromUrl() + "&projectToken=" + response;
+                        location.href = "enter-preferences.jsp?token=" + getUserEmail() + "&projectToken=" + response;
                     } else {
                         $("#projectIsMissing").hide();
                         $('#projectWrongPassword').show();
diff --git a/gemeinsamforschen/src/main/webapp/course/js/specificRequirement.js b/gemeinsamforschen/src/main/webapp/course/js/specificRequirement.js
index 40c84748..b7f5cc7a 100644
--- a/gemeinsamforschen/src/main/webapp/course/js/specificRequirement.js
+++ b/gemeinsamforschen/src/main/webapp/course/js/specificRequirement.js
@@ -1,5 +1,5 @@
 $(document).ready(function(){
     $('#submit').on('click', function(){
-        location.href="project-docent.jsp?token="+getUserTokenFromUrl();
+        location.href="project-docent.jsp?token="+getUserEmail();
     });
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/course/js/specificSkills.js b/gemeinsamforschen/src/main/webapp/course/js/specificSkills.js
index d55c4b1f..c51d1fd9 100644
--- a/gemeinsamforschen/src/main/webapp/course/js/specificSkills.js
+++ b/gemeinsamforschen/src/main/webapp/course/js/specificSkills.js
@@ -1,5 +1,5 @@
 $(document).ready(function () {
     $('#submit').on('click',function(){
-        document.location="project-docent.jsp?token="+getUserTokenFromUrl();
+        document.location="project-docent.jsp?token="+getUserEmail();
     });
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js b/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js
index ef25a980..02737ed2 100644
--- a/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js
+++ b/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js
@@ -49,7 +49,7 @@ $(document).ready(function () {
         });*/
 
         //console.log(data);
-        location.href = "give-feedback.jsp?token=" + getUserTokenFromUrl();
+        location.href = "give-feedback.jsp?token=" + getUserEmail();
         alert("Feedback wurde gesendet!");
     });
 })
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/js/create-preferences.js b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-preferences.js
index c92a7974..2d25ea78 100644
--- a/gemeinsamforschen/src/main/webapp/groupfinding/js/create-preferences.js
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-preferences.js
@@ -51,7 +51,7 @@ function deletInput(name) {        //deletes latest input-Field with the ID 'nam
  * selects the tags from the db and prints the seleciton
  */
 function printTags() {
-    var url = "../../gemeinsamforschen/rest/project/tags/" + getProjectTokenFromUrl();
+    var url = "../../gemeinsamforschen/rest/project/tags/" + getProjectName();
     $.ajax({
         url: url,
         Accept: "application/json",
@@ -133,7 +133,7 @@ function takesPartInProject(context) {
             console.log(response);
             document.getElementById('loader').className = "loader-inactive";
             document.getElementById('wrapper').className = "wrapper";
-            location.href = "../overview-student.jsp?token=" + getUserTokenFromUrl();
+            location.href = "../overview-student.jsp?token=" + getUserEmail();
         },
         error: function (a, b, c) {
             console.log(a);
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/js/myGroupsInit.js b/gemeinsamforschen/src/main/webapp/groupfinding/js/myGroupsInit.js
index 6588c71a..d94f9764 100644
--- a/gemeinsamforschen/src/main/webapp/groupfinding/js/myGroupsInit.js
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/js/myGroupsInit.js
@@ -131,7 +131,7 @@ function showProject(project, user) {           //will display the chosen option
  */
 
 function getProjectsOfAuthor(author, printedProjects, handleProjects) {
-    var url = "../../gemeinsamforschen/rest/project/all/author/"+getUserTokenFromUrl();
+    var url = "../../gemeinsamforschen/rest/project/all/author/"+getUserEmail();
     $.ajax({
         url: url,
         Accept: "application/json",
diff --git a/gemeinsamforschen/src/main/webapp/management/js/create-project.js b/gemeinsamforschen/src/main/webapp/management/js/create-project.js
index a73bcfd3..99724ba1 100644
--- a/gemeinsamforschen/src/main/webapp/management/js/create-project.js
+++ b/gemeinsamforschen/src/main/webapp/management/js/create-project.js
@@ -110,7 +110,7 @@ function getProjectValues() {
         "password": password,
         "active": true,
         "timecreated": null,
-        "authorEmail": getUserTokenFromUrl(),
+        "authorEmail": getUserEmail(),
         "adminPassword": adminPassword,
         "token": "",
         "phase": "GroupFormation",
@@ -138,7 +138,7 @@ function createProjectinCompbase(projectName) {
         success: function (response) {
             console.log(response);
             // it actually worked, too
-            document.location.href = "edit-project.jsp?token="+getUserTokenFromUrl()+"&projectToken="+projectToken;
+            document.location.href = "edit-project.jsp?token="+getUserEmail()+"&projectToken="+projectToken;
         },
         error: function (a, b, c) {
             console.log(a);
diff --git a/gemeinsamforschen/src/main/webapp/management/js/deleteProject.js b/gemeinsamforschen/src/main/webapp/management/js/deleteProject.js
index d930682f..2dd5dc97 100644
--- a/gemeinsamforschen/src/main/webapp/management/js/deleteProject.js
+++ b/gemeinsamforschen/src/main/webapp/management/js/deleteProject.js
@@ -11,7 +11,7 @@ $(document).ready(function () {
 });
 
 function deleteProject(projectName) {
-    var token = getUserTokenFromUrl();
+    var token = getUserEmail();
     var url = "../database/delete-project.jsp?project=" + projectName + "&password=" + document.getElementById('projectPassword').value.trim() + "&token=" + token;
     if (projectName === "") {
         return false;
@@ -39,7 +39,7 @@ function deleteProject(projectName) {
                                 console.log(a);
                             }
                         });
-                        window.location.href = " ../pages/projects.php?token=" + getUserTokenFromUrl();
+                        window.location.href = " ../pages/projects.php?token=" + getUserEmail();
                     } else {
                         $("#projectIsMissing").hide();
                         $('#projectWrongPassword').show();
diff --git a/gemeinsamforschen/src/main/webapp/management/js/edit-group-settings.js b/gemeinsamforschen/src/main/webapp/management/js/edit-group-settings.js
index 95b1307c..1ac256c1 100644
--- a/gemeinsamforschen/src/main/webapp/management/js/edit-group-settings.js
+++ b/gemeinsamforschen/src/main/webapp/management/js/edit-group-settings.js
@@ -13,8 +13,8 @@ $(document).ready(function () {
             gfm = "LearningGoalStrategy";
         }
 
-        var projectToken = getProjectTokenFromUrl();
-        var localurl = "../../gemeinsamforschen/rest/group/settings/projects/"+getProjectTokenFromUrl();
+        var projectToken = getProjectName();
+        var localurl = "../../gemeinsamforschen/rest/group/settings/projects/"+getProjectName();
         $.ajax({
             gfm: gfm,
             url: localurl,
@@ -23,13 +23,13 @@ $(document).ready(function () {
             data: gfm,
             success: function (a,b,c) {
                 if (gfm == "Manual") {
-                    document.location.href = "../groupfinding/create-groups-manual.jsp?token="+getUserTokenFromUrl()+"&projectToken="+projectToken;
+                    document.location.href = "../groupfinding/create-groups-manual.jsp?token="+getUserEmail()+"&projectToken="+projectToken;
                 }
                 if (gfm == "UserProfilStrategy"){
-                    document.location.href = "../groupfinding/create-groups-preferences.jsp?token="+getUserTokenFromUrl()+"&projectToken="+projectToken;
+                    document.location.href = "../groupfinding/create-groups-preferences.jsp?token="+getUserEmail()+"&projectToken="+projectToken;
                 }
                 else {
-                    document.location.href = "../groupfinding/create-groups-learninggoal.jsp?token="+getUserTokenFromUrl()+"&projectToken="+projectToken;
+                    document.location.href = "../groupfinding/create-groups-learninggoal.jsp?token="+getUserEmail()+"&projectToken="+projectToken;
                 }
                 return true;
             },
diff --git a/gemeinsamforschen/src/main/webapp/management/js/join-project.js b/gemeinsamforschen/src/main/webapp/management/js/join-project.js
index dfef30f1..2aedc7d4 100644
--- a/gemeinsamforschen/src/main/webapp/management/js/join-project.js
+++ b/gemeinsamforschen/src/main/webapp/management/js/join-project.js
@@ -37,7 +37,7 @@ function loginProject(projectName) {
                 } else {
                     if (response !== "wrong password") {            //if response !== project missing and not wrong password, its the projectToken
                         var projectToken = response;
-                        document.location.href = "../groupfinding/enter-preferences.jsp?token="+getUserTokenFromUrl()+"&projectToken="+projectToken;
+                        document.location.href = "../groupfinding/enter-preferences.jsp?token="+getUserEmail()+"&projectToken="+projectToken;
                     } else {
                         $("#projectIsMissing").hide();
                         $('#projectWrongPassword').show();
diff --git a/gemeinsamforschen/src/main/webapp/management/js/overview.js b/gemeinsamforschen/src/main/webapp/management/js/overview.js
index 24ce2b46..7815ec76 100644
--- a/gemeinsamforschen/src/main/webapp/management/js/overview.js
+++ b/gemeinsamforschen/src/main/webapp/management/js/overview.js
@@ -23,7 +23,7 @@ function printProjects(projects, offset) {
             //'<a class="btn btn-default"><em class="fa fa-pencil" ></em></a>' +
             //'<button id="deleteButton' +i+ '" class="btn btn-danger fa fa-trash deleteButton"></button>' +
             content.innerHTML = '<td align="center">' +
-                '<a href="delete-project.jsp?token=' + getUserTokenFromUrl() + '" class="btn btn-danger fa fa-trash"></a>' +
+                '<a href="delete-project.jsp?token=' + getUserEmail() + '" class="btn btn-danger fa fa-trash"></a>' +
                 '</td>' +
                 '<td class="hidden-xs" href="#Div_Promo_Carousel" data-slide="next">' + projects[i] + '</td>' +
                 '<td id="projectTags' + (i + offset) + '" href="#Div_Promo_Carousel" data-slide="next"></td>';
diff --git a/gemeinsamforschen/src/main/webapp/researchReport/js/createReportOverview.js b/gemeinsamforschen/src/main/webapp/researchReport/js/createReportOverview.js
index 2eda3629..76061330 100644
--- a/gemeinsamforschen/src/main/webapp/researchReport/js/createReportOverview.js
+++ b/gemeinsamforschen/src/main/webapp/researchReport/js/createReportOverview.js
@@ -5,7 +5,7 @@ $(document).ready(function () {
     $('#student').val(student);
     $('#project').val(project);
     $('#uploader').on('click', function () {
-        //location.href="create-title.jsp?token="+getUserTokenFromUrl();
+        //location.href="create-title.jsp?token="+getUserEmail();
         //boolean uploaded=true;
     });
     $('#backLink').on('click', function () {
-- 
GitLab