--- /dev/null
+<% /**
+*Copyright © Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
+*
+*This file is part of the work and learning management system Pentila Nero.
+*
+*Pentila Nero is free software. You can redistribute it and/or modify since
+*you respect the terms of either (at least one of the both license) :
+*- under the terms of the GNU Affero General Public License as
+*published by the Free Software Foundation, either version 3 of the
+*License, or (at your option) any later version.
+*- the CeCILL-C as published by CeCILL-C; either version 1 of the
+*License, or any later version
+*- the GNU Lesser General Public License as published by the
+*Free Software Foundation, either version 3 of the license,
+*or (at your option) any later version.
+*
+*There are special exceptions to the terms and conditions of the
+*licenses as they are applied to this software. View the full text of
+*the exception in file LICENSE-PROJECT.txt in the directory of this software
+*distribution.
+*
+*Pentila Nero is distributed in the hope that it will be useful,
+*but WITHOUT ANY WARRANTY; without even the implied warranty of
+*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+*Licenses for more details.
+*
+*You should have received a copy of the GNU Affero General Public License
+*and the CeCILL-C and the GNU Lesser General Public License along with
+*Pentila Nero. If not, see :
+*<http://www.gnu.org/licenses/> and
+*<http://www.cecill.info/licences.fr.html>.
+*/ %>
+<%@page import="java.util.ArrayList"%>
+<%@page import="com.pentila.entSavoie.utils.ENTOrganizationsUtil"%>
+<%@page import="com.liferay.portal.service.RoleLocalServiceUtil"%>
+<%@page import="com.liferay.portal.model.RoleConstants"%>
+<%@page import="com.liferay.portal.model.Role"%>
+<%@page import="com.pentila.entSavoie.ENTRoleUtilFactory"%>
+<%@page import="com.liferay.portal.service.OrganizationLocalServiceUtil"%>
+<%@page import="com.liferay.portal.kernel.util.ParamUtil"%><%@page import="javax.portlet.PortletPreferences"%>
+<%@page import="com.pentila.entSavoie.ENTDisplayUtil"%>
+<%@page import="java.util.List"%>
+<%@page import="com.liferay.portal.model.Organization"%>
+<%@ include file="./initAjax.jsp" %>
+
+<%
+ JSONArray val = JSONFactoryUtil.createJSONArray();
+ String nodePath = ParamUtil.getString(renderRequest, "node", "");
+
+ if(nodePath.equals("organizations")){
+ Role orgAdminRole = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(RoleConstants.ADMINISTRATOR);
+ boolean isAdmin = RoleLocalServiceUtil.hasUserRole(user.getUserId(), orgAdminRole.getRoleId());
+
+ // si restriction
+ // --> on prends les etablissements dans lesquels le user est inscrit!!!
+ if (!isAdmin) {
+ Organization rootOrg = ENTOrganizationsUtil.getOrCreateRootOrg(user.getCompanyId());
+ long rootOrgId = rootOrg.getOrganizationId();
+
+ List<Organization> userOrgs = user.getOrganizations();
+ List<Organization> etablissements = new ArrayList<Organization>();
+ for (Organization o: userOrgs) {
+ if (o.getParentOrganizationId()==rootOrgId) {
+ etablissements.add(o);
+ }
+ }
+ for(Organization o: etablissements){
+ JSONObject etablissement = JSONFactoryUtil.createJSONObject();
+ etablissement.put("id", o.getOrganizationId());
+ etablissement.put("text", ENTDisplayUtil.formatSCONETName(user, o.getName()));
+ etablissement.put("leaf", false);
+ etablissement.put("checked", true);
+ etablissement.put("allowDrop", false);
+ etablissement.put("expanded", etablissements.size() == 1);
+ val.put(etablissement);
+ }
+ }
+ else {
+ // pas de restriction uniquement pour les user Administrator
+ //--> On retourne tous les etablissements
+ Organization rootOrg = ENTOrganizationsUtil.getOrCreateRootOrg(user.getCompanyId());
+ //Organization principalOrg = OrganizationFinderServiceUtil.getEtabRatachement(user);
+ for (Organization o: rootOrg.getSuborganizations()) {
+ if (!ENTDisplayUtil.formatSCONETName(user,
+ o.getName()).equals("") &&
+ !o.getName().contains(" - Parent") &&
+ !o.getName().contains(" - Enseignants") &&
+ !o.getName().contains(" - Personnels") ) {
+
+ JSONObject etablissement = JSONFactoryUtil.createJSONObject();
+ etablissement.put("id", o.getOrganizationId());
+ etablissement.put("text", ENTDisplayUtil.formatSCONETName(user, o.getName()));
+ etablissement.put("leaf", false);
+ etablissement.put("checked", false);
+ etablissement.put("allowDrop", false);
+ val.put(etablissement);
+ }
+ }
+ }
+ } else {
+
+ Organization etab = OrganizationLocalServiceUtil.getOrganization(Long.valueOf(nodePath));
+ for (Organization o: etab.getSuborganizations()) {
+
+ String organizationName = ENTDisplayUtil.formatSCONETName(user, o.getName(), false);
+
+ if (ENTDisplayUtil.formatSCONETName(user,
+ o.getName()).equals("") ||
+ o.getName().endsWith(" - Parents") ||
+ organizationName.equals("Parent") ||
+ organizationName.equals("Enseignants") ||
+ organizationName.equals("Personnels")){
+ continue;
+ }
+
+ // on teste pour ne pas prendre les orgs migrate=done
+ PortletPreferences prefs = o.getPreferences();
+ if (prefs.getValue("migrate", "none").equals("done")) {
+ continue;
+ }
+
+ JSONObject classe = JSONFactoryUtil.createJSONObject();
+ classe.put("id", o.getOrganizationId());
+ classe.put("text", organizationName);
+ classe.put("leaf", true);
+ classe.put("checked", false);
+ classe.put("allowDrop", false);
+ val.put(classe);
+ }
+ }
+
+%>
+<%= val.toString() %>