--- /dev/null
+package com.liferay.contacts.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.portlet.PortletPreferences;
+
+import com.liferay.portal.kernel.bean.PortletBeanLocatorUtil;
+import com.liferay.portal.kernel.dao.orm.Disjunction;
+import com.liferay.portal.kernel.dao.orm.DynamicQuery;
+import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
+import com.liferay.portal.kernel.dao.orm.Property;
+import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
+import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil;
+import com.liferay.portal.kernel.exception.SystemException;
+import com.liferay.portal.kernel.log.Log;
+import com.liferay.portal.kernel.log.LogFactoryUtil;
+import com.liferay.portal.model.Group;
+import com.liferay.portal.model.Organization;
+import com.liferay.portal.model.PortalPreferences;
+import com.liferay.portal.service.PortalPreferencesLocalServiceUtil;
+import com.liferay.portal.util.PortletKeys;
+import com.liferay.portlet.PortletPreferencesFactoryUtil;
+import com.pentila.entSavoie.userManagement.service.ClpSerializer;
+
+public class PreferencesUtil {
+
+ private static Log logger = LogFactoryUtil.getLog(PreferencesUtil.class);
+
+
+ /**
+ * Methods which get a list of portalpreference from list of organization
+ * @param oranizationToVerify
+ * @return the list of PortalPreferences
+ * @throws SystemException
+ */
+ @SuppressWarnings("unchecked")
+ public static List<PortalPreferences> getPortalPreferenceForOrgList(List<Organization> oranizationToVerify) throws SystemException{
+ ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),"portletClassLoader");
+ DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(PortalPreferences.class,classLoader);
+ Property ownerIdProperty = PropertyFactoryUtil.forName("ownerId");
+ Property ownerTypeProperty = PropertyFactoryUtil.forName("ownerType");
+ Disjunction disjunctionOrgsId = RestrictionsFactoryUtil.disjunction();
+
+ for(Organization anOrg : oranizationToVerify){
+ disjunctionOrgsId.add(ownerIdProperty.eq(anOrg.getOrganizationId()));
+ }
+ dynamicQuery.add(disjunctionOrgsId);
+ dynamicQuery.add(ownerTypeProperty.eq(PortletKeys.PREFS_OWNER_TYPE_ORGANIZATION));
+
+ List<PortalPreferences> portalPreferencesToReturn = new ArrayList<PortalPreferences>();
+ portalPreferencesToReturn.addAll(PortalPreferencesLocalServiceUtil.dynamicQuery(dynamicQuery));
+
+ return portalPreferencesToReturn;
+ }
+
+ /**
+ * Methods which get a list of portalpreference from list of organization
+ * @param groupsToVerify
+ * @return the list of PortalPreferences
+ * @throws SystemException
+ */
+ @SuppressWarnings("unchecked")
+ public static List<PortalPreferences> getPortalPreferenceForGroupList(List<Group> groupsToVerify) throws SystemException{
+ ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),"portletClassLoader");
+ DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(PortalPreferences.class,classLoader);
+ Property ownerIdProperty = PropertyFactoryUtil.forName("ownerId");
+ Property ownerTypeProperty = PropertyFactoryUtil.forName("ownerType");
+ Disjunction disjunctionOrgsId = RestrictionsFactoryUtil.disjunction();
+
+ for(Group group : groupsToVerify){
+ disjunctionOrgsId.add(
+ ownerIdProperty.eq(group.getClassPK()));
+ }
+ dynamicQuery.add(disjunctionOrgsId);
+ dynamicQuery.add(ownerTypeProperty.eq(PortletKeys.PREFS_OWNER_TYPE_ORGANIZATION));
+
+ List<PortalPreferences> portalPreferencesToReturn = new ArrayList<PortalPreferences>();
+ portalPreferencesToReturn.addAll(PortalPreferencesLocalServiceUtil.dynamicQuery(dynamicQuery));
+
+ return portalPreferencesToReturn;
+ }
+
+ /**
+ * Method which convert a portal preference to portlet preference
+ * @param portalPrefferenceList the portal preference in entry
+ * @param companyId companyId need for convertion
+ * @return the converted portlet prefernce, otherwise (case error)
+ */
+ public static PortletPreferences convertPortalPreferenceToPortletPreference(
+ PortalPreferences portalPreference, long companyId){
+ try {
+ return PortletPreferencesFactoryUtil.fromXML(companyId,
+ portalPreference.getOwnerId(),
+ PortletKeys.PREFS_OWNER_TYPE_ORGANIZATION, 0,
+ PortletKeys.PORTAL, portalPreference.getPreferences());
+
+ } catch (SystemException e) {
+ logger.error("Error during conversion from PortalPreference to PortletPreference",e);
+ return null;
+ }
+ }
+
+ public static boolean isOrgMigrateFromPortletPreferences(PortletPreferences orgPreferences){
+ return "done".equals(orgPreferences.getValue("migrate", "none"));
+ }
+
+}