Skip to content

Commit

Permalink
FIX: now before to redirect to purchase page, check if the game is al…
Browse files Browse the repository at this point in the history
…ready buyed
  • Loading branch information
Tonaion02 committed Jul 10, 2023
1 parent ae65bd0 commit 5df74ab
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 24 deletions.
30 changes: 16 additions & 14 deletions src/main/java/control/AccessControlFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,24 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
String path = httpServletRequest.getServletPath();
//Retrieve path from the request

//Retrieve user from the session
User user = (User) session.getAttribute("user");
//Retrieve user from the session
synchronized (session) {
//Retrieve user from the session
User user = (User) session.getAttribute("user");
//Retrieve user from the session

//Check if the access is permitted, in other case, redirect to login page or error page
if( checkForUserPath(path, user)) {
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/Login.jsp");
return;
}
else if(checkForAdminPath(path, user)) {
httpServletResponse.sendError(405);
return;
}
//Check if the access is permitted, in other case, redirect to login page
//Check if the access is permitted, in other case, redirect to login page or error page
if( checkForUserPath(path, user)) {
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/Login.jsp");
return;
}
else if(checkForAdminPath(path, user)) {
httpServletResponse.sendError(405);
return;
}
//Check if the access is permitted, in other case, redirect to login page

chain.doFilter(request, response);
chain.doFilter(request, response);
}
}

//Check if the user is logged(has a session)
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/control/AddPurchaseGameServlet.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package control;

import java.io.IOException;
import java.security.InvalidParameterException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
Expand All @@ -16,6 +15,8 @@

import model.Purchase;
import model.User;
import utility.BackendException;
import utility.InvalidParameters;
import utility.MethodNotSupportedException;
import model.Game;

Expand All @@ -39,8 +40,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)

//Check if input are valid
if(! super.validParameters(request, response)) {
throw new InvalidParameterException("Ajajajaj");

throw new InvalidParameters();
}
//Check if input are valid

Expand Down Expand Up @@ -73,7 +73,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
try {
purchaseDAO.insert(purchase);
} catch (SQLException e) {
return;
throw new BackendException();
}
//Insert purchase on database

Expand Down
29 changes: 29 additions & 0 deletions src/main/java/control/PurchaseRedirectServlet.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
package control;

import java.io.IOException;
import java.sql.SQLException;
import java.util.Arrays;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

import utility.BackendException;
import utility.InvalidParameters;

import dao.PurchaseDAO;

import model.User;

@WebServlet("/user/PurchaseRedirectServlet")
public class PurchaseRedirectServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
Expand All @@ -27,11 +34,33 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
}
//Check if parameters are empty

//Retrieve user from the session
User user = (User)request.getSession().getAttribute("user");
//Retrieve user from the session

//Retrieve parameters from request
String from = request.getParameter("from");
String gameId = request.getParameter("gameId");
//Retrieve parameters from request

//Retrieve data source from the servlet context
DataSource ds = (DataSource)request.getServletContext().getAttribute("DataSource");
//Retrieve data source from the servlet context

//Check if the game is already buyed
PurchaseDAO purchaseDAO = new PurchaseDAO(ds);

boolean isBuyed = false;
try {
isBuyed = purchaseDAO.isBuyed(Integer.parseInt(gameId), user.getUsername());
} catch (NumberFormatException | SQLException e) {
throw new BackendException();
}

if(isBuyed)
throw new BackendException();
//Check if the game is already buyed

//Check if parameters are valid
if( ! (from.equals("personalGamePage") || from.equals("cart")) )
throw new InvalidParameters();
Expand Down
1 change: 0 additions & 1 deletion src/main/java/control/UpdateGameServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
game.setId(gameId);
//make game DTO


//update game in database
GameDAO gameDAO = new GameDAO(dataSource);
try {
Expand Down
5 changes: 1 addition & 4 deletions src/main/webapp/CSS/PersonalGamePage.css
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,11 @@ div#description {

div#description h1 {
height: 40px;
width: 100%;

margin-top: 10px;

text-align: left;

display: inline-block;
}

div#description button {
Expand Down Expand Up @@ -224,8 +223,6 @@ span#rightText {
div#description h1 {
display: block;

min-width: 100%;

text-align: center;
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/user/Wishlist.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
<%for (Game currentGame:games){ %>
<div class=gameDiv>
<p class=gameImage>
<a href='/GamingWorldShop/PersonalGamePage.jsp?gameId=<%=currentGame.getId()%>'><img src="RetrieveGameImageServlet?gameId=<%=currentGame.getId()%>&role=BANNER" alt="game logo"> </a>
<a href='../PersonalGamePage.jsp?gameId=<%=currentGame.getId()%>'><img src="../RetrieveGameImageServlet?gameId=<%=currentGame.getId()%>&role=BANNER" alt="game logo"> </a>
</p>
<p class=gamePrice>
<span class= price><%=currentGame.getPrice()%></span><br>
Expand Down

0 comments on commit 5df74ab

Please sign in to comment.