1 /*******************************************************************************
2 * Copyright � Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
3 * Copyright Alexandre Desoubeaux, Christian Martel, Cedric Lecarpentier, Alexandre Lefevre, Marc Salvat 2014-2016
4 * Copyright Alexandre Desoubeaux, Christian Martel, Cedric Lecarpentier, Marc Salvat, Marc Suarez, Harifetra Ramamonjy 2017
6 * This file is part of the work and learning management system Pentila Nero.
8 * Pentila Nero is free software. You can redistribute it and/or modify since
9 * you respect the terms of either (at least one of the both license) :
10 * - under the terms of the GNU Affero General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 * - the CeCILL-C as published by CeCILL-C; either version 1 of the
14 * License, or any later version
15 * - the GNU Lesser General Public License as published by the
16 * Free Software Foundation, either version 3 of the license,
17 * or (at your option) any later version.
19 * There are special exceptions to the terms and conditions of the
20 * licenses as they are applied to this software. View the full text of
21 * the exception in file LICENSE-PROJECT.txt in the directory of this software
24 * Pentila Nero is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * Licenses for more details.
29 * You should have received a copy of the GNU Affero General Public License
30 * and the CeCILL-C and the GNU Lesser General Public License along with
31 * Pentila Nero. If not, see :
32 * <http://www.gnu.org/licenses/> and
33 * <http://www.cecill.info/licences.fr.html>.
34 ******************************************************************************/
35 package com.pentila.entSavoie.utils;
37 import java.io.BufferedReader;
38 import java.io.InputStreamReader;
40 import java.net.URLConnection;
42 import javax.naming.NamingException;
44 import com.liferay.portal.kernel.exception.PortalException;
45 import com.liferay.portal.kernel.exception.SystemException;
46 import com.liferay.portal.kernel.json.JSONException;
47 import com.liferay.portal.model.Role;
48 import com.liferay.portal.model.User;
49 import com.liferay.portal.service.RoleLocalServiceUtil;
50 import com.pentila.entSavoie.ENTRoleUtilFactory;
51 import com.pentila.entSavoie.ENTRolesConstants;
52 import com.pentila.entSavoie.directory.OrganizationFinderServiceUtil;
54 public class XitiUtil {
56 public static final String STOCKAGE_PARTAGE = "Stockage_Partage";
57 public static final int ID_STOCKAGE_PARTAGE = 1;
59 public static final String TRAVAIL_COLLABORATIF = "Travail_Collaboratif";
60 public static final int ID_TRAVAIL_COLLABORATIF = 2;
62 public static final String NOTES = "Notes";
63 public static final int ID_NOTES = 3;
65 public static final String ABSENCES = "Absences";
66 public static final int ID_ABSENCES = 4;
68 public static final String SERVICES_VIE_SCOLAIRE = "Services_Vie_Scolaire";
69 public static final int ID_SERVICES_VIE_SCOLAIRE = 5;
71 public static final String GESTION_COMPETENCES = "Gestion_Competences";
72 public static final int ID_GESTION_COMPETENCES = 6;
74 public static final String GESTION_TEMPS = "Gestion_Temps";
75 public static final int ID_GESTION_TEMPS = 7;
77 public static final String EMPLOI_TEMPS = "Emploi_Temps";
78 public static final int ID_EMPLOI_TEMPS = 8;
80 public static final String CAHIER_TEXTES = "Cahier_Textes";
81 public static final int ID_CAHIER_TEXTES = 9;
83 public static final String COURRIER_ELECTRONIQUE = "Courrier_Electronique";
84 public static final int ID_COURRIER_ELECTRONIQUE = 10;
86 public static final String ACTUALITES = "Actualites";
87 public static final int ID_ACTUALITES = 11;
89 public static final String RESERVATION_RESSOURCES = "Reservation_Ressources";
90 public static final int ID_RESERVATION_RESSOURCES = 12;
92 public static final String RESSOURCES_EN_LIGNE = "Ressources_En_Ligne";
93 public static final int ID_RESSOURCES_EN_LIGNE = 13;
95 public static final String DOCUMENTATION_CDI = "Documentation_CDI";
96 public static final int ID_DOCUMENTATION_CDI = 15;
98 public static final String ORIENTATION = "Orientation";
99 public static final int ID_ORIENTATION = 16;
101 public static final String SERVICE_COLLECTIVITES = "Service_Collectivites";
102 public static final int ID_SERVICE_COLLECTIVITES = 18;
104 public static final String VISIOCONFERENCE = "Visioconference";
105 public static final int ID_VISIOCONFERENCE = 19;
107 public static final String DASHBOARD = "Tableau_De_Bord";
108 public static final int ID_DASHBOARD = 20;
110 public static final String ADMINISTRATION_TOOLS = "Droits_de_communication";
111 public static final int ID_ADMINISTRATION_TOOLS = 21;
113 public static final String EDX = "EDX";
114 public static final int ID_EDX = 22;
116 public static final String EDX_STUDIO = "EDX_Studio";
117 public static final int ID_EDX_STUDIO = 23;
119 public static final String ETHERPAD = "Etherpad";
120 public static final int ID_ETHERPAD = 24;
122 public static final String USER_EXPORT = "Export_Utilisateurs";
123 public static final int ID_USER_EXPORT = 25;
125 public static final String FACILE = "Facile";
126 public static final int ID_FACILE = 26;
128 public static final String GEOGEBRA = "Geogebra";
129 public static final int ID_GEOGEBRA = 27;
131 public static final String APPLICATION_MANAGER = "Gestion_Applications";
132 public static final int ID_APPLICATION_MANAGER = 28;
134 public static final String SCHOOL_LIFE_MANAGER = "Gestion_Vie_Scolaire";
135 public static final int ID_SCHOOL_LIFE_MANAGER = 29;
137 public static final String TELESERVICES = "Teleservices";
138 public static final int ID_TELESERVICES = 30;
140 public static final String USER_MANAGEMENT = "Gestion_Utilisateur";
141 public static final int ID_USER_MANAGEMENT = 31;
143 public static final String GROUPS = "Groupes";
144 public static final int ID_GROUPS = 31;
146 public static final String SNAP = "Snap";
147 public static final int ID_SNAP = 31;
149 public static final String PRONOTE = "Pronote";
150 public static final int ID_PRONOTE = 32;
152 public static final String PAGE_ENT = "Page_ENT";
153 public static final int ID_PAGE_ENT = 0;
155 public static final String EMPTY_ID = "";
156 public static final String EMPTY_LIB_SERVICE = "";
157 public static final int EMPTY_INTEGER_ID = -1;
160 public static int getRole(User user) throws PortalException, SystemException{
162 if(!user.isDefaultUser()){
163 Role eleve = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_1);
164 Boolean isEleve = RoleLocalServiceUtil.hasUserRole(user.getUserId(), eleve.getRoleId());
166 Role parent = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_2);
167 Boolean isParent = RoleLocalServiceUtil.hasUserRole(user.getUserId(), parent.getRoleId());
169 Role enseignant = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_3);
170 Boolean isEnseignant = RoleLocalServiceUtil.hasUserRole(user.getUserId(), enseignant.getRoleId());
172 Role chefDEtab = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_4);
173 Boolean isChefDEtab = RoleLocalServiceUtil.hasUserRole(user.getUserId(), chefDEtab.getRoleId());
175 Role assistEducation = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_21);
176 Boolean isAssistEducation = RoleLocalServiceUtil.hasUserRole(user.getUserId(), assistEducation.getRoleId());
178 Role documentaliste = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_24);
179 Boolean isDocumentaliste = RoleLocalServiceUtil.hasUserRole(user.getUserId(), documentaliste.getRoleId());
181 Role persoEducation = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(ENTRolesConstants.NATIONAL_25);
182 Boolean isPersoEducation = RoleLocalServiceUtil.hasUserRole(user.getUserId(), persoEducation.getRoleId());
187 else if(isEnseignant){
193 else if(isChefDEtab || isAssistEducation || isDocumentaliste || isPersoEducation){
203 public static int getEtab(User user) throws JSONException, NamingException, Exception{
204 if(!user.isDefaultUser()){
205 return ENTMainUtilsLocalServiceUtil.getXitiEtabId(user.getCompanyId(), OrganizationFinderServiceUtil.getEtabRatachement(user).getGroup().getGroupId());
211 //Requête xiti: http://logi7.xiti.com/hit.xitif?s=123456&s2=1&p=Actualites&idclient=34005&x1=11&x2=5&x3=1&x4=1&hl=15x24x51&r=3200x1800x24x24
212 public static String sendXitiRequest(int idEtab, String libelleService, long userId, int idService, int idProfil, long companyId){
213 String endpoint = "http://logi7.xiti.com/hit.xitif";
214 String result = null;
215 String requestParameters = "";
217 if(idService == EMPTY_INTEGER_ID){
218 requestParameters = "s="+ ENTMainUtilsLocalServiceUtil.getXitiIdCollectivite(companyId) + "&s2=" + idEtab + "&p=" + libelleService + "&idclient=" + userId + "&x1=&x2=" + idProfil + "&x3=" + ENTMainUtilsLocalServiceUtil.getXitiIdProjet(companyId) + "&x4=" + ENTMainUtilsLocalServiceUtil.getXitiIdPlateforme(companyId) + "&hl=15x24x51&r=3200x1800x24x24";
220 requestParameters = "s="+ ENTMainUtilsLocalServiceUtil.getXitiIdCollectivite(companyId) + "&s2=" + idEtab + "&p=" + libelleService + "&idclient=" + userId + "&x1=" + idService + "&x2=" + idProfil + "&x3=" + ENTMainUtilsLocalServiceUtil.getXitiIdProjet(companyId) + "&x4=" + ENTMainUtilsLocalServiceUtil.getXitiIdPlateforme(companyId) + "&hl=15x24x51&r=3200x1800x24x24";
223 // Send a GET request to the servlet
227 StringBuffer data = new StringBuffer();
229 String urlStr = endpoint;
230 if (requestParameters != null && requestParameters.length() > 0)
232 urlStr += "?" + requestParameters;
234 URL url = new URL(urlStr);
235 URLConnection conn = url.openConnection();
237 BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
238 StringBuffer sb = new StringBuffer();
240 while ((line = rd.readLine()) != null)
245 result = sb.toString();
246 } catch (Exception e)