001
014
015 package com.liferay.portlet.usersadmin.lar;
016
017 import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
018 import com.liferay.portal.kernel.lar.BasePortletDataHandler;
019 import com.liferay.portal.kernel.lar.DataLevel;
020 import com.liferay.portal.kernel.lar.PortletDataContext;
021 import com.liferay.portal.kernel.lar.PortletDataHandlerBoolean;
022 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
023 import com.liferay.portal.kernel.lar.StagedModelType;
024 import com.liferay.portal.kernel.xml.Element;
025 import com.liferay.portal.model.Organization;
026 import com.liferay.portal.model.OrganizationConstants;
027 import com.liferay.portal.service.OrganizationLocalServiceUtil;
028 import com.liferay.portal.service.persistence.OrganizationExportActionableDynamicQuery;
029 import com.liferay.portal.util.PortletKeys;
030
031 import java.util.List;
032
033 import javax.portlet.PortletPreferences;
034
035
039 public class UsersAdminPortletDataHandler extends BasePortletDataHandler {
040
041 public static final String NAMESPACE = "users_admin";
042
043 public UsersAdminPortletDataHandler() {
044 setDataLevel(DataLevel.PORTAL);
045 setDeletionSystemEventStagedModelTypes(
046 new StagedModelType(Organization.class));
047 setExportControls(
048 new PortletDataHandlerBoolean(
049 NAMESPACE, "organizations", true, true, null,
050 Organization.class.getName()));
051 setSupportsDataStrategyCopyAsNew(false);
052 }
053
054 @Override
055 protected PortletPreferences doDeleteData(
056 PortletDataContext portletDataContext, String portletId,
057 PortletPreferences portletPreferences)
058 throws Exception {
059
060 List<Organization> organizations =
061 OrganizationLocalServiceUtil.getOrganizations(
062 portletDataContext.getCompanyId(),
063 OrganizationConstants.ANY_PARENT_ORGANIZATION_ID);
064
065 for (Organization organization : organizations) {
066 OrganizationLocalServiceUtil.deleteOrganization(organization);
067 }
068
069 return portletPreferences;
070 }
071
072 @Override
073 protected String doExportData(
074 final PortletDataContext portletDataContext, String portletId,
075 PortletPreferences portletPreferences)
076 throws Exception {
077
078 portletDataContext.addPermissions(
079 PortletKeys.PORTAL, portletDataContext.getCompanyId());
080
081 Element rootElement = addExportDataRootElement(portletDataContext);
082
083 rootElement.addAttribute(
084 "group-id", String.valueOf(portletDataContext.getScopeGroupId()));
085
086 ActionableDynamicQuery actionableDynamicQuery =
087 new OrganizationExportActionableDynamicQuery(portletDataContext);
088
089 actionableDynamicQuery.performActions();
090
091 return getExportDataRootElementString(rootElement);
092 }
093
094 @Override
095 protected PortletPreferences doImportData(
096 PortletDataContext portletDataContext, String portletId,
097 PortletPreferences portletPreferences, String data)
098 throws Exception {
099
100 portletDataContext.importPermissions(
101 PortletKeys.PORTAL, portletDataContext.getSourceCompanyId(),
102 portletDataContext.getCompanyId());
103
104 Element organizationsElement =
105 portletDataContext.getImportDataGroupElement(Organization.class);
106
107 List<Element> organizationElements = organizationsElement.elements();
108
109 for (Element organizationElement : organizationElements) {
110 StagedModelDataHandlerUtil.importStagedModel(
111 portletDataContext, organizationElement);
112 }
113
114 return null;
115 }
116
117 @Override
118 protected void doPrepareManifestSummary(
119 PortletDataContext portletDataContext,
120 PortletPreferences portletPreferences)
121 throws Exception {
122
123 ActionableDynamicQuery actionableDynamicQuery =
124 new OrganizationExportActionableDynamicQuery(portletDataContext);
125
126 actionableDynamicQuery.performCount();
127 }
128
129 }