Skip to content
Snippets Groups Projects
Commit 94262250 authored by Julian Dehne's avatar Julian Dehne
Browse files

bigfixing: the an error with the switch cases for docent-student

refactoring: simplified package structure (no servlet/tag folders needed)
documentation: added some comments to the service classes
parent f0724b7b
No related branches found
No related tags found
No related merge requests found
package unipotsdam.gf.core.management.user.tags; package unipotsdam.gf.core.management.user;
import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.core.management.ManagementImpl;
import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.core.management.user.User;
...@@ -8,6 +8,10 @@ import javax.servlet.jsp.tagext.*; ...@@ -8,6 +8,10 @@ import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*; import javax.servlet.jsp.*;
import java.io.*; import java.io.*;
/**
* implemented while porting the login page. It might be useful to have a hidden user field on the page in order to
* manipulate the user data with jquery
*/
public class HiddenUserTag extends SimpleTagSupport { public class HiddenUserTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException { public void doTag() throws JspException, IOException {
PageContext pageContext = (PageContext) getJspContext(); PageContext pageContext = (PageContext) getJspContext();
......
package unipotsdam.gf.core.management.user.servlets; package unipotsdam.gf.core.management.user;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.core.management.ManagementImpl;
import unipotsdam.gf.core.management.user.User;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
/**
* this filter can be applied to a given space in order to validate, that the tag in the url is a valid one
* not applied to to a folder yet (because might lead to confusing experiences in debugging)
*/
public class SessionValidator implements Filter { public class SessionValidator implements Filter {
Logger log = LoggerFactory.getLogger(SessionValidator.class); Logger log = LoggerFactory.getLogger(SessionValidator.class);
......
...@@ -3,6 +3,6 @@ package unipotsdam.gf.core.management.user; ...@@ -3,6 +3,6 @@ package unipotsdam.gf.core.management.user;
/** /**
* Created by dehne on 31.05.2018. * Created by dehne on 31.05.2018.
*/ */
// user data that is created on a project basis // user data that is created on a project basis - needs to be implemented by Marjen for her group formation
public class UserInterests { public class UserInterests {
} }
package unipotsdam.gf.core.management; package unipotsdam.gf.core.management.user;
import unipotsdam.gf.core.management.ManagementImpl;
import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.interfaces.IMunschkin; import unipotsdam.gf.interfaces.IMunschkin;
import unipotsdam.gf.modules.munchkin.controller.MunchkinImpl; import unipotsdam.gf.modules.munchkin.controller.MunchkinImpl;
...@@ -16,6 +17,15 @@ import java.net.URISyntaxException; ...@@ -16,6 +17,15 @@ import java.net.URISyntaxException;
@Path("/user") @Path("/user")
public class UserService { public class UserService {
/**
* creates a user with given credentials
* @param name
* @param password
* @param email
* @param isStudent
* @return
* @throws URISyntaxException
*/
// This method is called if HTML is request // This method is called if HTML is request
@POST @POST
@Produces(MediaType.TEXT_HTML) @Produces(MediaType.TEXT_HTML)
...@@ -23,15 +33,20 @@ public class UserService { ...@@ -23,15 +33,20 @@ public class UserService {
public Response createUser(@FormParam("name") String name, @FormParam("password") String password, public Response createUser(@FormParam("name") String name, @FormParam("password") String password,
@FormParam("email") String email, @FormParam("isStudent") String isStudent) @FormParam("email") String email, @FormParam("isStudent") String isStudent)
throws URISyntaxException { throws URISyntaxException {
ManagementImpl management = new ManagementImpl(); ManagementImpl management = new ManagementImpl();
User user = new User(name, password, email, isStudent == null); User user = new User(name, password, email, isStudent == null);
return login(true, user); return login(true, user);
} }
/**
* checks if a user exists in order to log him in
* @param name
* @param password
* @param email
* @return
* @throws URISyntaxException
*/
// This method is called if HTML is request // This method is called if HTML is request
@POST @POST
@Produces(MediaType.TEXT_HTML) @Produces(MediaType.TEXT_HTML)
...@@ -41,17 +56,23 @@ public class UserService { ...@@ -41,17 +56,23 @@ public class UserService {
throws URISyntaxException { throws URISyntaxException {
ManagementImpl management = new ManagementImpl(); ManagementImpl management = new ManagementImpl();
User user = new User(name, password, email, null); User user = new User(name, password, email, null);
return login(false, user); return login(false, user);
} }
/**
* if create User is true, the user is created and logged in if he does not exist
* @param createUser
* @param user
* @return
* @throws URISyntaxException
*/
protected Response login(boolean createUser, User user) throws URISyntaxException { protected Response login(boolean createUser, User user) throws URISyntaxException {
ManagementImpl management = new ManagementImpl(); ManagementImpl management = new ManagementImpl();
if (management.exists(user)) { if (management.exists(user)) {
if (!createUser) {
return redirectToProjectPage(user, management);
}
String existsUrl = "../register.jsp?userExists=true"; String existsUrl = "../register.jsp?userExists=true";
return forwardToLocation(existsUrl); return forwardToLocation(existsUrl);
} else { } else {
...@@ -61,17 +82,34 @@ public class UserService { ...@@ -61,17 +82,34 @@ public class UserService {
String existsUrl = "../index.jsp?userExists=false"; String existsUrl = "../index.jsp?userExists=false";
return forwardToLocation(existsUrl); return forwardToLocation(existsUrl);
} }
String successUrl; return redirectToProjectPage(user, management);
if (user.getStudent() != null && user.getStudent()) { }
successUrl = "../pages/overview-student.html?token="; }
} else {
successUrl = "../pages/overview-docent.html?token="; /**
} * helper function for redirecting to the right project page
successUrl += management.getUserToken(user); * @param user
return forwardToLocation(successUrl); * @param management
* @return
* @throws URISyntaxException
*/
private Response redirectToProjectPage(User user, ManagementImpl management) throws URISyntaxException {
String successUrl;
if (user.getStudent() != null && user.getStudent()) {
successUrl = "../pages/overview-student.html?token=";
} else {
successUrl = "../pages/overview-docent.html?token=";
} }
successUrl += management.getUserToken(user);
return forwardToLocation(successUrl);
} }
/**
* * helper function for redirecting to a new page
* @param existsUrl
* @return
* @throws URISyntaxException
*/
private Response forwardToLocation(String existsUrl) throws URISyntaxException { private Response forwardToLocation(String existsUrl) throws URISyntaxException {
return Response.seeOther(new URI(existsUrl)).build(); return Response.seeOther(new URI(existsUrl)).build();
} }
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<!-- loginFilter --> <!-- loginFilter -->
<filter> <filter>
<filter-name>RequestLoggingFilter</filter-name> <!-- mandatory --> <filter-name>RequestLoggingFilter</filter-name> <!-- mandatory -->
<filter-class>unipotsdam.gf.core.management.user.servlets.SessionValidator</filter-class> <!-- mandatory --> <filter-class>unipotsdam.gf.core.management.user.SessionValidator</filter-class> <!-- mandatory -->
</filter> </filter>
<filter-mapping> <filter-mapping>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<tag> <tag>
<name>hiddenUserTag</name> <name>hiddenUserTag</name>
<tag-class>unipotsdam.gf.core.management.user.tags.HiddenUserTag</tag-class> <tag-class>unipotsdam.gf.core.management.user.HiddenUserTag</tag-class>
<body-content>empty</body-content> <body-content>empty</body-content>
</tag> </tag>
</taglib> </taglib>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment