From 13280cfba2495925d4eee6a300b776c87bd202f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn?= <mmendez5163@gmail.com> Date: Sat, 4 Nov 2017 09:00:42 -0300 Subject: [PATCH] =?UTF-8?q?Archivo=20de=20configuraci=C3=B3n=20para=20ENDP?= =?UTF-8?q?OINT=20de=20Moodle=20y=20nombre=20del=20grupo=20asociado.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend Angular 4/src/app/shared/config.ts | 8 ++--- Servidor JEE/WebContent/WEB-INF/config.json | 4 +++ .../WEB-INF/lib/json-simple-1.1.1.jar | Bin 0 -> 23737 bytes .../main/java/edu/proygrado/ejb/LoginEJB.java | 34 +++++++++++++----- 4 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 Servidor JEE/WebContent/WEB-INF/config.json create mode 100644 Servidor JEE/WebContent/WEB-INF/lib/json-simple-1.1.1.jar diff --git a/Frontend Angular 4/src/app/shared/config.ts b/Frontend Angular 4/src/app/shared/config.ts index e5b4816..08abda3 100644 --- a/Frontend Angular 4/src/app/shared/config.ts +++ b/Frontend Angular 4/src/app/shared/config.ts @@ -1,8 +1,8 @@ -//export const SERVER = 'https://matefun.mybluemix.net'; -//export const GHCI_URL = 'wss://matefun.mybluemix.net/endpoint'; +export const SERVER = 'https://matefun.mybluemix.net'; +export const GHCI_URL = 'wss://matefun.mybluemix.net/endpoint'; -export const SERVER = 'http://localhost:9090'; -export const GHCI_URL = 'ws://localhost:9090/endpoint'; +//export const SERVER = 'http://localhost:9090'; +//export const GHCI_URL = 'ws://localhost:9090/endpoint'; //Configuracion dinamica pensando en servidor con ip dinamica //export const SERVER = window.location.protocol + '//' + window.location.host;//'http://localhost:9090'; diff --git a/Servidor JEE/WebContent/WEB-INF/config.json b/Servidor JEE/WebContent/WEB-INF/config.json new file mode 100644 index 0000000..18488fa --- /dev/null +++ b/Servidor JEE/WebContent/WEB-INF/config.json @@ -0,0 +1,4 @@ +{ + "endpoint":"https://tics.moodlecloud.com", + "group":"Piloto" +} \ No newline at end of file diff --git a/Servidor JEE/WebContent/WEB-INF/lib/json-simple-1.1.1.jar b/Servidor JEE/WebContent/WEB-INF/lib/json-simple-1.1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..66347a6c86b7d6442358ca7643e4dc484fb01866 GIT binary patch literal 23737 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 A{Qv*} literal 0 HcmV?d00001 diff --git a/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java b/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java index 9e60142..102cc13 100644 --- a/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java +++ b/Servidor JEE/src/main/java/edu/proygrado/ejb/LoginEJB.java @@ -48,7 +48,25 @@ import edu.proygrado.modelo.Usuario; */ @Stateless public class LoginEJB { - + public static String moodleApiEndpoint = null; + public static String moodleGroup = null; + public LoginEJB() { + super(); + //leo archivo de configuración. + JSONParser parser = new JSONParser(); + try { + String currentPath = System.getProperty("user.dir"); + String configFilePath = currentPath.substring(0,currentPath.length()-4); + configFilePath = configFilePath + "/standalone/deployments/matefun.war/WEB-INF/config.json"; + Object obj = parser.parse(new FileReader(configFilePath)); + JSONObject jsonObject = (JSONObject) obj; + LoginEJB.moodleApiEndpoint = (String) jsonObject.get("endpoint"); + LoginEJB.moodleGroup = (String) jsonObject.get("group"); + } catch (Exception e) { + e.printStackTrace(); + System.out.print("No se ha podido cargar el archivo: /standalone/deployments/matefun.war/WEB-INF/config.json"); + } + } @PersistenceContext(unitName = "matefunDS") private EntityManager em; @@ -98,7 +116,8 @@ public class LoginEJB { Long courseId = null; for (MoodleCourseDTO course : coursesInfo.getEnrolledcourses()) { System.out.println(course.getShortname()); - if (course.getShortname().toLowerCase().equals("piloto")) { + String groupName = LoginEJB.moodleGroup.toLowerCase(); + if (course.getShortname().toLowerCase().equals(groupName)) { courseId = course.getId(); System.out.println(courseId); } @@ -106,7 +125,7 @@ public class LoginEJB { if (courseId != null) { coursesInfo = getCursesInfo(token, userInfo.getUserid(), courseId); } else { - throw new MatefunForbiddenException("Usuario no asignado al curso \"Piloto\" en Moodle"); + throw new MatefunForbiddenException("Usuario no asignado al curso \"" +LoginEJB.moodleGroup +"\" en Moodle"); } String rol = null; @@ -121,7 +140,7 @@ public class LoginEJB { } if (rol == null) { - throw new MatefunForbiddenException("Rol incorrecto en curso \"Piloto\""); + throw new MatefunForbiddenException("Rol incorrecto en curso \"" +LoginEJB.moodleGroup +"\""); } Usuario nuevoDesdeMoodle; @@ -180,7 +199,7 @@ public class LoginEJB { javax.ws.rs.client.Client c = cb.build(); - String url = "https://tics.moodlecloud.com/login/token.php"; + String url = LoginEJB.moodleApiEndpoint + "/login/token.php"; MoodleTokensDTO tokens = null; try { // https://tics.moodlecloud.com/login/token.php @@ -206,8 +225,7 @@ public class LoginEJB { javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder(); javax.ws.rs.client.Client c = cb.build(); - - String url = "https://tics.moodlecloud.com/webservice/rest/server.php"; + String url = LoginEJB.moodleApiEndpoint + "/webservice/rest/server.php"; MoodleUserInfoDTO userInfo = null; try { @@ -234,7 +252,7 @@ public class LoginEJB { private MoodleCoursesInfoDTO getCursesInfo(String token, Long userId, Long courseId) throws MatefunException { javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder(); javax.ws.rs.client.Client c = cb.build(); - String url = "https://tics.moodlecloud.com/webservice/rest/server.php"; + String url = LoginEJB.moodleApiEndpoint+ "/webservice/rest/server.php"; List<MoodleCoursesInfoDTO> coursesInfo = null; try { -- GitLab