--- /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>.
+*/ %>
+<%@ include file="./initAjax.jsp" %>
+
+
+<%
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ result.put("success", true);
+
+ List<Ressource> listMyRessources = new ArrayList<Ressource>();
+
+ List<Ressource> listRessourcesAvailable = new ArrayList<Ressource>();
+
+ List<Ressource> listRessourcesFinal = new ArrayList<Ressource>();
+
+ // On prends toutes nos ressources
+ List<RessourceUser> listRessourceUser = RessourceUserLocalServiceUtil.getRessourceUserByUserId(user.getUserId());
+ for(RessourceUser ru : listRessourceUser){
+ Ressource res = RessourceLocalServiceUtil.getRessource(ru.getIdRessource());
+ listMyRessources.add(res);
+ }
+
+ // On prends toutes les ressources auxquelles on peut avoir acces
+ List<Ressource> listRessourceGeneral = RessourceLocalServiceUtil.getRessourcesByScopeTypeForcePubli(2, 1, false);
+ for(Ressource r : listRessourceGeneral){
+ if (!listMyRessources.contains(r)) {
+ listRessourcesAvailable.add(r);
+ }
+ }
+
+ // On prends les ressources de mon etab
+ long etabId = OrganizationFinderServiceUtil.getEtabRatachement(user).getOrganizationId();
+ List<Ressource> listRessourceEtab = RessourceLocalServiceUtil.getRessourcesByScopeTypeEtabIdForcePubli(1, 1, etabId, false);
+ for(Ressource r : listRessourceEtab){
+ if (!listMyRessources.contains(r)) {
+ listRessourcesAvailable.add(r);
+ }
+ }
+
+
+ // on check le filtre sur les roles
+ for(Ressource res : listRessourcesAvailable){
+ List<RessourceRole> ressourceRoles = RessourceRoleLocalServiceUtil.getRessourceRoleByRessourceId(res.getIdRessource());
+ if (ressourceRoles.isEmpty()) {
+ // pas de filtre role
+ listRessourcesFinal.add(res);
+ continue;
+ }
+ else {
+ for (RessourceRole rr: ressourceRoles) {
+ if(RoleLocalServiceUtil.hasUserRole(user.getUserId(), rr.getIdRole())) {
+ // on add et on break
+ listRessourcesFinal.add(res);
+ break;
+ }
+ }
+ }
+ }
+
+
+ result.put("total", listRessourcesFinal.size());
+ JSONArray ressources = JSONFactoryUtil.createJSONArray();
+ for(Ressource res : listRessourcesFinal){
+ JSONObject r = JSONFactoryUtil.createJSONObject();
+
+ r.put("idRessource", res.getIdRessource());
+ r.put("name", res.getName());
+ r.put("description", res.getDescription());
+ r.put("ressourceType", res.getRessourceType());
+ r.put("scope", res.getScope());
+ r.put("creator", PortalUtil.getUserName(res.getIdcreator(), "Utilisateur supprime"));
+ r.put("isCreator", res.getIdcreator()==user.getUserId());
+ r.put("isRessource", res.isRessource());
+ r.put("isWritable", res.getEcriture());
+
+ ressources.put(r);
+ }
+
+
+
+ result.put("ressourcesAvailable", ressources);
+%>
+<%= result.toString() %>