Arreglo de errores

master
Araozu 2018-07-07 15:42:57 -05:00
parent 2994b38f08
commit e45470c263
23 changed files with 910 additions and 379 deletions

View File

@ -1,7 +1,7 @@
package controller;
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;
/* clase "pmf.PMF" que va a tener la variable encargada de controlar las peticiones
* de registros y búsqueda de la información almacenada. */

View File

@ -24,77 +24,95 @@ public class AccessControllerAdd extends HttpServlet {
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PersistenceManager pm = PMF.get().getPersistenceManager();
String query = "select from " + Role.class.getName();
String query2 = "select from " + Resource.class.getName();
List<Role> roles = RolesControllerView.getAllRoles();
List<Resource> resources = ResourcesControllerView.getAllResources();
request.setAttribute("roles", roles);
request.setAttribute("resources", resources);
boolean redirect = true;
//String queryp = "select " + Role.class.getName();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/add.jsp");
if (request.getParameter("info") == null){
try{
HttpSession sesion= request.getSession();
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
request.setAttribute("User",user);
request.setAttribute("ResourceList",ResourcesControllerView.getAllResources());
dispatcher.forward(request,response);
redirect = false;
}
//Si no la encuentra, redirige a la pagina inicial.
catch (Exception e){
e.printStackTrace();
response.getWriter().println("<html><head><script>window.location.replace(\"../\")</script></head><body></body></html>");
}
}
else if(request.getParameter("info").equals("agregar")){
String idRole = request.getParameter("rolesl");
String idResource = request.getParameter("resourcesl");
if(idRole == null || idRole.equals("")|| idResource == null || idResource.equals("")){
System.out.print("nombre vacio");
}
else {
Access a = new Access(idRole, idResource,true);
//persist the entity
pm.makePersistent(a);
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access created successfully.\"}");
}
}
else if (request.getParameter("info").equals("check")){
response.getWriter().print(accessExist(request.getParameter("rolesl"),request.getParameter("resourcesl")));
redirect = false;
}
pm.close();
try{
if (redirect){
request.setAttribute("serverResponse","");
if(AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
PersistenceManager pm = PMF.get().getPersistenceManager();
String query = "select from " + Role.class.getName();
String query2 = "select from " + Resource.class.getName();
List<Role> roles = RolesControllerView.getAllRoles();
List<Resource> resources = ResourcesControllerView.getAllResources();
request.setAttribute("roles", roles);
request.setAttribute("resources", resources);
boolean redirect = true;
//String queryp = "select " + Role.class.getName();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/add.jsp");
if (request.getParameter("info") == null){
try{
HttpSession sesion= request.getSession();
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
request.setAttribute("User",user);
request.setAttribute("ResourceList",ResourcesControllerView.getAllResources());
dispatcher.forward(request,response);
redirect = false;
}
//Si no la encuentra, redirige a la pagina inicial.
catch (Exception e){
e.printStackTrace();
response.getWriter().println("<html><head><script>window.location.replace(\"../\")</script></head><body></body></html>");
}
}
else if(request.getParameter("info").equals("agregar")){
String idRole = request.getParameter("rolesl");
String idResource = request.getParameter("resourcesl");
if(idRole == null || idRole.equals("")|| idResource == null || idResource.equals("")){
System.out.print("nombre vacio");
}
else {
Access a = new Access(idRole, idResource,true);
//persist the entity
pm.makePersistent(a);
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access created successfully.\"}");
}
}
else if (request.getParameter("info").equals("check")){
response.getWriter().print(accessExist(request.getParameter("rolesl"),request.getParameter("resourcesl")));
redirect = false;
}
pm.close();
try{
if (redirect){
request.setAttribute("serverResponse","");
response.sendRedirect("/access");
}
}
//Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect.
catch (IllegalStateException e){
System.err.println("IllegalStateException: There was a double redirect.");
}
}else{
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to create an access.\"}");
response.sendRedirect("/access");
}
}
//Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect.
catch (IllegalStateException e){
System.err.println("IllegalStateException: There was a double redirect.");
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}

View File

@ -15,20 +15,36 @@ import controller.PMF;
@SuppressWarnings("serial")
public class AccessControllerDelete extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
// create the new account
try{
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("accessId")));
Access r = pm.getObjectById(Access.class, k);
pm.deletePersistent(r);
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
// create the new account
try{
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("accessId")));
Access r = pm.getObjectById(Access.class, k);
pm.deletePersistent(r);
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access deleted successfully.\"}");
response.sendRedirect("/access");
} catch(javax.jdo.JDOObjectNotFoundException nf) {
response.sendRedirect("/access");
}
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to delete an access.\"}");
response.sendRedirect("/access");
}
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access deleted successfully.\"}");
response.sendRedirect("/access");
} catch(javax.jdo.JDOObjectNotFoundException nf) {
response.sendRedirect("/access");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

View File

@ -22,68 +22,87 @@ public class AccessControllerEdit extends HttpServlet {
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
try{
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("id")));
try{
Access a = pm.getObjectById(Access.class, k);
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
request.setAttribute("access", a);
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
try{
String query = "select from " + Role.class.getName();
String query2 = "select from " + Resource.class.getName();
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("id")));
List<Role> roles = (List<Role>)pm.newQuery(query).execute();
List<Resource> resources = (List<Resource>)pm.newQuery(query2).execute();
Access a = pm.getObjectById(Access.class, k);
request.setAttribute("roles", roles);
request.setAttribute("resources", resources);
request.setAttribute("access", a);
try{
if(request.getParameter("info").equals("editar")){
String query = "select from " + Role.class.getName();
String query2 = "select from " + Resource.class.getName();
String idRole = request.getParameter("rolesl");
String idResource = request.getParameter("resourcesl");
List<Role> roles = (List<Role>)pm.newQuery(query).execute();
List<Resource> resources = (List<Resource>)pm.newQuery(query2).execute();
if(idRole == null || idRole.equals("")|| idResource == null || idResource.equals("")){
request.setAttribute("roles", roles);
request.setAttribute("resources", resources);
System.out.print("nombre vacio");
try{
if(request.getParameter("info").equals("editar")){
}
else{
String idRole = request.getParameter("rolesl");
String idResource = request.getParameter("resourcesl");
if(!a.getRoleKey().equals(idRole)){
a.setRoleKey(idRole);
}
if(idRole == null || idRole.equals("")|| idResource == null || idResource.equals("")){
if(!a.getResourceKey().equals(idResource)){
a.setResourceKey(idResource);
}
System.out.print("nombre vacio");
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access updated successfully.\"}");
}
else{
response.sendRedirect("/access");
if(!a.getRoleKey().equals(idRole)){
a.setRoleKey(idRole);
}
}
} else if(request.getParameter("info").equals("redirect")){
if(!a.getResourceKey().equals(idResource)){
a.setResourceKey(idResource);
}
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/edit.jsp");
request.setAttribute("User",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString()));
dispatcher.forward(request, response);
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Access updated successfully.\"}");
response.sendRedirect("/access");
}
} else if(request.getParameter("info").equals("redirect")){
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/edit.jsp");
request.setAttribute("User",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString()));
dispatcher.forward(request, response);
}
}catch (java.lang.NullPointerException np){
System.err.println("AccessControllerEdit Exception -> NPE:");
np.printStackTrace();
}
} catch(javax.jdo.JDOObjectNotFoundException nf) {
response.sendRedirect("/index.jsp");
} catch (NumberFormatException e){
response.sendRedirect("/users");
}
}catch (java.lang.NullPointerException np){
System.err.println("AccessControllerEdit Exception -> NPE:");
np.printStackTrace();
}
}else{
} catch(javax.jdo.JDOObjectNotFoundException nf) {
response.sendRedirect("/index.html");
} catch (NumberFormatException e){
response.sendRedirect("/users");
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to edit an access.\"}");
response.sendRedirect("/access");
}
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

View File

@ -19,44 +19,63 @@ import java.util.List;
@SuppressWarnings("serial")
public class AccessControllerIndex extends HttpServlet {
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
try{
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
// create the persistence manager instance
PersistenceManager pm = PMF.get().getPersistenceManager();
//Se usa para revisar si hay una sesion activa
HttpSession sesion= request.getSession();
//Se usa para revisar si hay una sesion activa
HttpSession sesion= request.getSession();
//Intenta hallar una sesion activa
try{
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
//Intenta hallar una sesion activa
try{
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
request.setAttribute("User",user);
request.setAttribute("User",user);
// query for the entities by name
String query = "select from " + Access.class.getName();
List<Access> accesses = (List<Access>)pm.newQuery(query).execute();
// query for the entities by name
String query = "select from " + Access.class.getName();
// pass the list to the jsp
request.setAttribute("accesses", accesses);
List<Access> accesses = (List<Access>)pm.newQuery(query).execute();
request.setAttribute("serverResponse",sesion.getAttribute("serverResponse"));
sesion.setAttribute("serverResponse","!");
// pass the list to the jsp
request.setAttribute("accesses", accesses);
// forward the request to the jsp
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/index.jsp");
dispatcher.forward(request, response);
request.setAttribute("serverResponse",sesion.getAttribute("serverResponse"));
sesion.setAttribute("serverResponse","!");
// forward the request to the jsp
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/index.jsp");
dispatcher.forward(request, response);
}
//Si no la encuentra, redirige a la pagina inicial para que se cree la sesion.
catch (Exception e){
e.printStackTrace();
response.getWriter().println("<html><head><script>window.location.replace(\"../\")</script></head><body></body></html>");
} finally {
pm.close();
}
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to access /access.\"}");
response.sendRedirect("/");
}
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
//Si no la encuentra, redirige a la pagina inicial para que se cree la sesion.
catch (Exception e){
e.printStackTrace();
response.getWriter().println("<html><head><script>window.location.replace(\"../\")</script></head><body></body></html>");
} finally {
pm.close();
}
}

View File

@ -29,24 +29,34 @@ public class AccessControllerView extends HttpServlet {
try{
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("id")));
Access a = pm.getObjectById(Access.class, k);
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())) {
request.setAttribute("access", a);
Key k = KeyFactory.createKey(Access.class.getSimpleName(), new Long(request.getParameter("id")));
Access a = pm.getObjectById(Access.class, k);
Role rol = RolesControllerView.getRole(a.getRoleKey());
request.setAttribute("access", a);
String nrol = rol.getName();
Role rol = RolesControllerView.getRole(a.getRoleKey());
Resource res = ResourcesControllerView.getResource(a.getResourceKey());
String nres = res.getUrl();
String nrol = rol.getName();
request.setAttribute("User",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString()));
Resource res = ResourcesControllerView.getResource(a.getResourceKey());
String nres = res.getUrl();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/view.jsp");
dispatcher.forward(request, response);
request.setAttribute("User",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString()));
}catch(javax.jdo.JDOObjectNotFoundException nf) {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Access/view.jsp");
dispatcher.forward(request, response);
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to view an access.\"}");
response.sendRedirect("/access");
}
} catch(javax.jdo.JDOObjectNotFoundException nf) {
System.err.println("JDOObjectNotFound -> AccessControllerView");
nf.printStackTrace();
request.getSession().setAttribute("serverResponse","{\"color\": \"darkorange\",\"response\":\"Error trying to view the Access.\"}");
@ -54,7 +64,8 @@ public class AccessControllerView extends HttpServlet {
} catch (NullPointerException e){
System.err.println("NPE -> Trying to access a servlet without logging in.");
response.sendRedirect("/users");
e.printStackTrace();
response.sendRedirect("/");
}
}
@ -92,7 +103,7 @@ public class AccessControllerView extends HttpServlet {
* */
public static boolean checkPermission(String userID, String uri){
User user = (User) UsersControllerView.getUser(userID);
User user = UsersControllerView.getUser(userID);
String userRoleName = user.getRoleName();
String userRoleKey = user.getRoleKey();
if (userRoleKey == null)
@ -101,10 +112,8 @@ public class AccessControllerView extends HttpServlet {
for (Access access: getAllAccess()){
if (userRoleName.equals("admin")){
return true;
} else if (access.getRoleKey().equals(userRoleKey)){
System.out.println("Encontrado USuario con Rol coincidente");
if (access.getResourceName().equals(uri)){
System.out.println("El USuario tiene acceso a esta URI");
} else if (access.getRoleKey().equals(userRoleKey) && access.getStatus()){
if (access.getResourceName().equals(uri) && ResourcesControllerView.getResource(access.getResourceKey()).getStatus()){
return true;
}
}

50
src/controller/index.java Normal file
View File

@ -0,0 +1,50 @@
package controller;
import controller.users.UsersControllerView;
import model.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class index extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession sesion= request.getSession();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
User loggedUser;
try {
loggedUser = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
} catch (NullPointerException e){
loggedUser = null;
}
if (loggedUser != null){
request.setAttribute("User",loggedUser);
request.setAttribute("isUserLogged",true);
request.setAttribute("serverResponse","You are logged in.");
request.setAttribute("serverResponse",request.getSession().getAttribute("serverResponse"));
request.getSession().setAttribute("serverResponse","!");
} else {
request.setAttribute("isUserLogged",false);
}
dispatcher.forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}

View File

@ -86,12 +86,12 @@ public class ServicesControllerAdd extends HttpServlet {
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to create/update a Service.\"}");
response.sendRedirect("/users");
response.sendRedirect("/services");
}
} catch (NullPointerException e){
response.sendRedirect("/users");
response.sendRedirect("/services");
}

View File

@ -43,12 +43,12 @@ public class ServicesControllerDelete extends HttpServlet {
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to delete a Service.\"}");
response.sendRedirect("/users");
response.sendRedirect("/services");
}
} catch (NullPointerException e){
response.sendRedirect("/users");
response.sendRedirect("/services");
}

View File

@ -45,11 +45,12 @@ public class ServicesControllerIndex extends HttpServlet {
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to access /services.\"}");
response.sendRedirect("/users");
response.sendRedirect("/");
}
} catch (NullPointerException e){
response.sendRedirect("/users");
e.printStackTrace();
response.sendRedirect("/");
}

View File

@ -74,11 +74,11 @@ public class ServicesControllerView extends HttpServlet {
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to view/edit a Service.\"}");
response.sendRedirect("/users");
response.sendRedirect("/services");
}
} catch (NullPointerException e){
response.sendRedirect("/users");
response.sendRedirect("/services");
}
}

View File

@ -1,5 +1,6 @@
package controller.users;
import controller.access.AccessControllerView;
import controller.roles.RolesControllerAdd;
import controller.roles.RolesControllerView;
import model.Role;
@ -21,108 +22,129 @@ public class UsersControllerAdd extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PersistenceManager pm = controller.PMF.get().getPersistenceManager();
//Accion a realizar
String action = request.getParameter("action");
//Respuesta del servidor
String serverResponse = "!";
if (action == null)
action = "";
//Email del usuario
String userEmail = request.getParameter("userEmail");
//Solo se usa al actualizar un usuario.
String prevUserID = request.getParameter("userID");
//El ID del usuario. Este id se obtiene del email -> en richard@gmail.com el ID es richard
String userID;
try {
userID = userEmail.substring(0,userEmail.indexOf("@"));
} catch (NullPointerException e){
userID = prevUserID;
}
//Parametros necesarios.
String userName = request.getParameter("userName");
String userImg = request.getParameter("userImg");
String userRole = request.getParameter("userRole");
switch (action) {
//Si se quiere iniciar sesion y/o registrar un usuario desde el inicio de sesion de Google
case "logIn":
//Busca si ya existe una sesion iniciada
HttpSession misesion = request.getSession();
List<Role> roleList = RolesControllerView.searchRole(userRole);
if (roleList.size() > 0){
userRole = roleList.get(0).getKey();
} else {
userRole = RolesControllerAdd.createRole(userRole,true,pm);
}
createUser(userID, userEmail, userName, userImg, userRole, pm);
//Si no existe la sesion, la crea usando el ID del usuario
if (!sesionExist(misesion)) {
misesion.invalidate();
misesion = request.getSession(true);
misesion.setAttribute("userID", userID);
//La sesion perdurara sin actividad durante 1h.
misesion.setMaxInactiveInterval(3600);
}
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"You are logged in.\"}";
break;
//Si lo que se quiere es redirigir al Form para crear usuario
case "redirect":
HttpSession sesion= request.getSession();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/add.jsp");
request.setAttribute("User",UsersControllerView.getUser(sesion.getAttribute("userID").toString()));
request.setAttribute("Roles",RolesControllerView.getAllRoles());
dispatcher.forward(request, response);
break;
//Si lo que se quiere es Crear (proviene del formulario)
case "create":
createUser(userID, userEmail, userName, userImg, userRole, pm);
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"User created successfully.\"}";
break;
//Si lo que se quiere es actualizar un Usuario
case "update":
User user = pm.getObjectById(User.class, prevUserID);
user.setName(userName);
user.setEmail(userEmail);
user.setImgUrl(userImg);
user.setRoleKey(userRole);
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"Service updated successfully.\"}";
break;
}
pm.close();
try{
request.getSession().setAttribute("serverResponse",serverResponse);
response.sendRedirect("/users");
}
//Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect.
catch (IllegalStateException e){
System.err.println("IllegalStateException: There was a double redirect.");
if(request.getParameter("action").equals("logIn") ||
AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
PersistenceManager pm = controller.PMF.get().getPersistenceManager();
//Accion a realizar
String action = request.getParameter("action");
//Respuesta del servidor
String serverResponse = "!";
if (action == null)
action = "";
//Email del usuario
String userEmail = request.getParameter("userEmail");
//Solo se usa al actualizar un usuario.
String prevUserID = request.getParameter("userID");
//El ID del usuario. Este id se obtiene del email -> en richard@gmail.com el ID es richard
String userID;
try {
userID = userEmail.substring(0,userEmail.indexOf("@"));
} catch (NullPointerException e){
userID = prevUserID;
}
//Parametros necesarios.
String userName = request.getParameter("userName");
String userImg = request.getParameter("userImg");
String userRole = request.getParameter("userRole");
String rutaRedireccion = "/users";
switch (action) {
//Si se quiere iniciar sesion y/o registrar un usuario desde el inicio de sesion de Google
case "logIn":
//Busca si ya existe una sesion iniciada
HttpSession misesion = request.getSession();
List<Role> roleList = RolesControllerView.searchRole(userRole);
if (roleList.size() > 0){
userRole = roleList.get(0).getKey();
} else {
userRole = RolesControllerAdd.createRole(userRole,true,pm);
}
createUser(userID, userEmail, userName, userImg, userRole, pm);
//Si no existe la sesion, la crea usando el ID del usuario
if (!sesionExist(misesion)) {
misesion.invalidate();
misesion = request.getSession(true);
misesion.setAttribute("userID", userID);
//La sesion perdurara sin actividad durante 1h.
misesion.setMaxInactiveInterval(3600);
}
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"You are logged in.\"}";
rutaRedireccion = "/";
break;
//Si lo que se quiere es redirigir al Form para crear usuario
case "redirect":
HttpSession sesion= request.getSession();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/add.jsp");
request.setAttribute("User",UsersControllerView.getUser(sesion.getAttribute("userID").toString()));
request.setAttribute("Roles",RolesControllerView.getAllRoles());
dispatcher.forward(request, response);
break;
//Si lo que se quiere es Crear (proviene del formulario)
case "create":
createUser(userID, userEmail, userName, userImg, userRole, pm);
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"User created successfully.\"}";
break;
//Si lo que se quiere es actualizar un Usuario
case "update":
User user = pm.getObjectById(User.class, prevUserID);
user.setName(userName);
user.setEmail(userEmail);
user.setImgUrl(userImg);
user.setRoleKey(userRole);
serverResponse = "{\"color\": \"#26a69a\",\"response\":\"User updated successfully.\"}";
break;
}
pm.close();
try{
request.getSession().setAttribute("serverResponse",serverResponse);
response.sendRedirect(rutaRedireccion);
}
//Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect.
catch (IllegalStateException e){
System.err.println("IllegalStateException: There was a double redirect.");
}
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to create a user.\"}");
response.sendRedirect("/users");
}
}catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
@ -178,6 +200,16 @@ public class UsersControllerAdd extends HttpServlet {
}
}
//Si el usuario ya existe, lo obtiene, revisa su imagen de perfil, y la actualiza (si al iniciar sesion con Google no coinciden).
else {
User loggedUser = pm.getObjectById(User.class,userID);
if (!userImg.equals(loggedUser.getImgUrl()))
loggedUser.setImgUrl(userImg);
}
}

View File

@ -1,5 +1,6 @@
package controller.users;
import controller.access.AccessControllerView;
import model.User;
import javax.jdo.JDOObjectNotFoundException;
@ -14,20 +15,37 @@ import java.io.IOException;
public class UsersControllerDelete extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PersistenceManager pm = controller.PMF.get().getPersistenceManager();
String userID = request.getParameter("userID");
try{
pm.deletePersistent(pm.getObjectById(User.class, userID));
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Service deleted sucessfully.\"}");
} catch (JDOObjectNotFoundException e){
System.err.println("Exception catched -> " + e.getMessage());
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){
PersistenceManager pm = controller.PMF.get().getPersistenceManager();
String userID = request.getParameter("userID");
try{
pm.deletePersistent(pm.getObjectById(User.class, userID));
request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"User deleted sucessfully.\"}");
} catch (JDOObjectNotFoundException e){
System.err.println("Exception catched -> " + e.getMessage());
}
pm.close();
response.sendRedirect("/users");
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to delete a user.\"}");
response.sendRedirect("/users");
}
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
pm.close();
response.sendRedirect("/users");
}

View File

@ -1,42 +1,48 @@
package controller.users;
import controller.access.AccessControllerView;
import model.User;
import java.io.IOException;
import javax.jdo.PersistenceManager;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@SuppressWarnings("serial")
public class UsersControllerIndex extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
//Se usa para revisar si hay una sesion activa
HttpSession sesion= request.getSession();
//Intenta hallar una sesion activa
try{
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
request.setAttribute("User",user);
request.setAttribute("UsersList",UsersControllerView.getAllUsers());
request.setAttribute("serverResponse",sesion.getAttribute("serverResponse"));
sesion.setAttribute("serverResponse","!");
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/index.jsp");
dispatcher.forward(request,response);
//Se usa para revisar si hay una sesion activa
HttpSession sesion= request.getSession();
}
//Si no la encuentra, redirige a la pagina inicial.
catch (Exception e){
System.err.println("UserControllerIndex: Error catched. " + e.getMessage());
response.getWriter().println("<html><head><script>window.location.replace(\"../\")</script></head></html>");
if (AccessControllerView.checkPermission(sesion.getAttribute("userID").toString(),request.getRequestURI())){
//Intenta hallar una sesion activa
User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString());
if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo.");
request.setAttribute("User",user);
request.setAttribute("UsersList",UsersControllerView.getAllUsers());
request.setAttribute("serverResponse",sesion.getAttribute("serverResponse"));
sesion.setAttribute("serverResponse","!");
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/index.jsp");
dispatcher.forward(request,response);
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to access /users.\"}");
response.sendRedirect("/");
}
//Si no la encuentra, redirige a la pagina inicial.
//Si el usuario no tiene permiso tambien redirigie a la pagina inicial
} catch (Exception e){
e.printStackTrace();
response.sendRedirect("/");
}
}

View File

@ -1,5 +1,6 @@
package controller.users;
import controller.access.AccessControllerView;
import controller.roles.RolesControllerView;
import model.User;
@ -12,67 +13,88 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
@SuppressWarnings("serial")
public class UsersControllerView extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String action = request.getParameter("action");
try{
//Para evitar errores, si no hay ninguna accion, se establece a vacio.
if (action == null)
action = "";
if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())) {
String userID = request.getParameter("userID");
String action = request.getParameter("action");
//Si se quiere cerrar la sesion actual
if (action.equals("closeSession")){
closeSession(request,response);
}
//Redirige al formulario para editar un usario (user/view)
else if (action.equals("editRedirect") && userID != null){
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/view.jsp");
request.setAttribute("User",getUser(userID));
request.setAttribute("UserLogged",getUser(request.getSession().getAttribute("userID").toString()));
//Para evitar errores, si no hay ninguna accion, se establece a vacio.
if (action == null)
action = "";
String userID = request.getParameter("userID");
//Si se quiere cerrar la sesion actual
if (action.equals("closeSession")){
closeSession(request,response);
}
//Redirige al formulario para editar un usario (user/view)
else if (action.equals("editRedirect") && userID != null){
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/view.jsp");
request.setAttribute("User",getUser(userID));
request.setAttribute("UserLogged",getUser(request.getSession().getAttribute("userID").toString()));
//Ya que se quiere editar, el atributo permitirEdicion es verdadero. Este atributo se comprueba en el JSP.
request.setAttribute("editAllowed",true);
request.setAttribute("action","Edit");
request.setAttribute("Roles",RolesControllerView.getAllRoles());
try{
dispatcher.forward(request,response);
} catch (javax.servlet.ServletException e){
e.printStackTrace();
}
}
//Redirige al formulario para ver un usuario (user/view)
else if (action.equals("viewRedirect") && userID != null){
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/view.jsp");
request.setAttribute("User",getUser(userID));
request.setAttribute("UserLogged",getUser(request.getSession().getAttribute("userID").toString()));
request.setAttribute("Roles",RolesControllerView.getAllRoles());
//Ya que se quiere editar, el atributo permitirEdicion es verdadero. Este atributo se comprueba en el JSP.
request.setAttribute("editAllowed",true);
request.setAttribute("action","Edit");
request.setAttribute("Roles",RolesControllerView.getAllRoles());
try{
dispatcher.forward(request,response);
} catch (javax.servlet.ServletException e){
e.printStackTrace();
}
}
//Redirige al formulario para ver un usuario (user/view)
else if (action.equals("viewRedirect") && userID != null){
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Users/view.jsp");
request.setAttribute("User",getUser(userID));
request.setAttribute("UserLogged",getUser(request.getSession().getAttribute("userID").toString()));
request.setAttribute("Roles",RolesControllerView.getAllRoles());
//Ya que no quiere editar, el atributo permitirEdicion es falso. Este atributo se comprueba en el JSP.
request.setAttribute("editAllowed",false);
request.setAttribute("action","View");
try{
dispatcher.forward(request,response);
} catch (javax.servlet.ServletException e){
e.printStackTrace();
}
}
//Si no se encontró acción, regresa al inicio
else {
response.getWriter().println("<html><head><script>window.location.replace(\"../\");</script><body></body></html>");
}
} else {
request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to edit/view a user.\"}");
response.sendRedirect("/users");
//Ya que no quiere editar, el atributo permitirEdicion es falso. Este atributo se comprueba en el JSP.
request.setAttribute("editAllowed",false);
request.setAttribute("action","View");
try{
dispatcher.forward(request,response);
} catch (javax.servlet.ServletException e){
e.printStackTrace();
}
} catch (NullPointerException e){
e.printStackTrace();
response.sendRedirect("/");
}
//Si no se encontró acción, regresa al inicio
else {
response.getWriter().println("<html><head><script>window.location.replace(\"../\");</script><body></body></html>");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
@ -144,4 +166,6 @@ public class UsersControllerView extends HttpServlet {
}
}
}

View File

@ -6,6 +6,7 @@ import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import java.util.ArrayList;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class User {

View File

@ -174,6 +174,8 @@
<span class="heading">No Accesses registered.</span>
<% } %>
</div>

View File

@ -203,8 +203,19 @@
</servlet-mapping>
<!-- Controlador para gestionar el comportamiento del menu de inicio -->
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>controller.index</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

View File

@ -87,30 +87,5 @@ RESET
-----------------------------------------------------
*/
a {
color: #404040; /* por defecto 404040*/
text-decoration: none;
-o-transition: all .8s ease-in-out;
-moz-transition: all .8s ease-in-out;
-webkit-transition: all .8s ease-in-out;
transition: all .8s ease-in-out;
}
a:hover,
a:focus,
a:active {
color: #23BF87;
-o-transition: all 0s ease-in-out;
-moz-transition: all 0s ease-in-out;
-webkit-transition: all 0s ease-in-out;
transition: all 0s ease-in-out;
}
@font-face {
font-family: "Product Sans";
src: url("../fonts/ProductSansRegular.ttf");
}
@font-face {
font-family: "Product Sans";
font-weight: bold;
src: url("../fonts/ProductSansBold.ttf");
}

View File

@ -7,7 +7,6 @@
}
.postLink:hover{
color: green;
font-size: larger;
}
body{
margin: 0;
@ -59,3 +58,20 @@ body{
text-decoration: none;
display: block;
}
.transition{
overflow: hidden;
height: auto;
transition: max-height 250ms ease-in;
}
@font-face {
font-family: "Product Sans";
src: url("../fonts/ProductSansRegular.ttf");
}
@font-face {
font-family: "Product Sans";
font-weight: bold;
src: url("../fonts/ProductSansBold.ttf");
}

View File

@ -3388,20 +3388,20 @@ nav ul a span.badge {
margin-right: -0.75rem;
}
.section {
.mainDiv {
padding-top: 1rem;
padding-bottom: 1rem;
}
.section.no-pad {
.mainDiv.no-pad {
padding: 0;
}
.section.no-pad-bot {
.mainDiv.no-pad-bot {
padding-bottom: 0;
}
.section.no-pad-top {
.mainDiv.no-pad-top {
padding-top: 0;
}

File diff suppressed because one or more lines are too long

314
war/index.jsp Normal file
View File

@ -0,0 +1,314 @@
<%@ page import="model.User" %>
<% boolean isUserLogged;
try {
isUserLogged = Boolean.parseBoolean(request.getAttribute("isUserLogged").toString());
}
catch (NullPointerException e){
isUserLogged = false;
}
User usuario = (User) request.getAttribute("User");
String serverResponse = (String) request.getAttribute("serverResponse");
if (serverResponse == null) serverResponse = "!";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home - Hotel Service</title>
<!--<link type="text/css" rel="stylesheet" href="./css/Diseno.css">-->
<link type="text/css" rel="stylesheet" href="./css/materialize.min.css">
<link type="text/css" rel="stylesheet" href="./css/Elements.css?v=2">
<script src="./js/GlobalJs.js" async defer></script>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="google-signin-client_id" content="746890482047-c734fgap3p3vb6bdoquufn60bsh2p8l9.apps.googleusercontent.com">
<style>
#mainHeader{
background: url('http://www.hotelimperialeroma.it/data/mobile/hotel-imperiale-roma-camere-01-2.jpg') no-repeat local center;
height: 40%;
text-align: center;
padding: 100px;
background-size: 100%;
overflow: hidden;
transition: opacity 500ms, max-height 250ms,padding 500ms;
}
body{
margin: 0;
padding: 0;
background-color: white;
font-family: Roboto, serif;
}
.transition{
overflow: hidden;
height: auto;
transition: max-height 250ms ease-in;
}
</style>
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<% if(!isUserLogged){ %>
<div id="mainHeader">
<h1 style="font-size: 50px; color: white; display: inline; font-weight: bold; font-family: 'Product Sans',serif">Hotel Services</h1>
</div>
<nav style="background-color: #67c9b3">
<div class="nav-wrapper">
<a href="./" class="brand-logo" style="padding: 0 0 0 20px; font-family: 'Product Sans', Roboto, serif">Hotel Services</a>
</div>
</nav>
<br />
<div class="container">
<div style="font-size: x-large">
<span id="mainText">Welcome! Log In to Start</span>
<br />
<br />
<div id="mainDiv" class="transition" style="max-height: 400px">
<div style="font-size: large">
With Google:
<div class="g-signin2" data-onsuccess="onSignIn" style="margin: 10px"></div>
<br />
<br />
</div>
</div>
<div id="loadingDiv" class="transition" style="max-height: 0">
<div class="preloader-wrapper big active">
<div class="spinner-layer spinner-blue">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-red">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-yellow">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-green">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
</div>
<hr />
Developed by:<br />
Fernando Araoz, 20173373<br />
Jose Rodriguez, 20101650<br />
Gustavo Turpo, 20173374<br />
</div>
<script>
"use strict";
function onSignIn(googleUser) {
document.getElementById("mainDiv").style.maxHeight = "0";
document.getElementById("loadingDiv").style.maxHeight = "100px";
var profile = googleUser.getBasicProfile();
document.getElementById("mainText").innerText = "Logged In. Redirecting...";
document.getElementById("mainHeader").style.maxHeight = "0";
document.getElementById("mainHeader").style.padding = "0";
setTimeout(function () {
postRedirect("/users/add",{
userEmail : profile.getEmail(),
userName : profile.getName(),
userImg : profile.getImageUrl(),
userRole : "User",
action : "logIn"
});
},500);
}
</script>
<% } else { %>
<nav style="background-color: #67c9b3">
<div class="nav-wrapper">
<a class="whiteLink hide-on-small-only" href="#" style="padding: 0 0 0 20px; font-family: 'Product Sans', Roboto, serif; font-size: xx-large">Hotel Services</a>
<div class="right valign-wrapper" style="padding: 0 0 0 10px; cursor: pointer; min-width: 150px;" onclick="changeUserOptions()">
<span style="min-width: 80px;">
<%= usuario.getName()%>
</span>
<img src="<%=usuario.getImgUrl()%>" alt="" class="circle responsive-img" style="padding: 5px" width="50px">
<i class="material-icons">arrow_drop_down</i>
<div id="userOptions" style="background-color: white; border:solid 2px #67c9b3; position: absolute;
width: auto; display: none;">
<ul style="color: black">
<li style="padding: 0 5px;">
<a style="color: black" onclick="postRedirect('./users/view',{action:'closeSession'})">Log Out</a>
</li>
<li id="cerrar" style="padding: 0 5px; cursor: pointer">
<i class="small material-icons">arrow_drop_up</i>
</li>
</ul>
</div>
</div>
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li>
<a href="https://github.com/Grupo-PW2/Lab08" target="_blank">
<svg style="width: 32px; height: 32px; margin: 20px 0" aria-labelledby="simpleicons-github-icon" roleKey="img" xmlns="http://www.w3.org/2000/svg">
<title id="simpleicons-github-icon">
GitHub icon
</title>
<path fill="white" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12">
</path>
</svg>
</a>
</li>
<li><a class="whiteLink" onclick="postRedirect('./roles')">Roles</a></li>
<li><a class="whiteLink" onclick="postRedirect('./users')">Users</a></li>
<li><a class="whiteLink" onclick="postRedirect('./resources')">Resources</a></li>
<li><a class="whiteLink" onclick="postRedirect('./access')">Access</a></li>
<li>|</li>
<li><a class="whiteLink" onclick="postRedirect('./services')">Services</a></li>
<li>|</li>
</ul>
<div class="dropdown hide-on-large-only" style="padding: 0 10px; font-weight: bold" onclick="toggleDropdown()">Show Services</div>
<div id="dropdownContent">
<a onclick="postRedirect('./roles')">Roles</a>
<a href="#" style="background-color: lightgray">Users</a>
<a onclick="postRedirect('./resources')">Resources</a>
<a onclick="postRedirect('./access')">Access</a>
</div>
</div>
</nav>
<div class="container">
<br />
<span style="font-size: xx-large; font-family: 'Product Sans',Roboto,serif">Home</span>
<br />
<br />
<%if (!serverResponse.equals("!")){ %>
<div id="serverResponse">
<div style="margin: 10px"></div>
</div>
<script>
var respDiv = document.getElementById("serverResponse");
var responseData = JSON.parse('<%=serverResponse%>');
respDiv.style.backgroundColor = responseData["color"];
respDiv.innerHTML = "<div style=\"margin: 10px\">" + responseData["response"] + "</div>";
setTimeout(function () {
respDiv.style.maxHeight = "500px";
setTimeout(function () {
respDiv.style.maxHeight = "0";
},1500);
},300);
</script>
<% } %>
<br />
<br />
<div style="font-size: x-large">
Welcome, <%=usuario.getName()%>.<br />
<br />
Here's some data:<br />
<div class="row">
<div class="col l9 m9 s8">
Your name: <%=usuario.getName()%><br />
Your email: <%=usuario.getEmail()%><br />
Your Role: <%=usuario.getRoleName()%>
</div>
<div class="col l3 m3 s4">
<img src="<%=usuario.getImgUrl()%>">
</div>
</div>
<br />
</div>
</div>
<% } %>
<script>
function postRedirect(url, postData){
var postForm = document.createElement("form");
postForm.action = url;
postForm.method = "POST";
postForm.style.display = "none";
for (var key in postData){
if (postData.hasOwnProperty(key)){
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = postData[key];
postForm.appendChild(input);
}
}
document.body.appendChild(postForm);
postForm.submit();
}
</script>
</body>
</html>