001
014
015 package com.liferay.portlet.passwordpoliciesadmin.lar;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.lar.BaseStagedModelDataHandler;
019 import com.liferay.portal.kernel.lar.ExportImportPathUtil;
020 import com.liferay.portal.kernel.lar.PortletDataContext;
021 import com.liferay.portal.kernel.xml.Element;
022 import com.liferay.portal.model.Group;
023 import com.liferay.portal.model.PasswordPolicy;
024 import com.liferay.portal.service.GroupLocalServiceUtil;
025 import com.liferay.portal.service.PasswordPolicyLocalServiceUtil;
026 import com.liferay.portal.service.ServiceContext;
027
028
031 public class PasswordPolicyStagedModelDataHandler
032 extends BaseStagedModelDataHandler<PasswordPolicy> {
033
034 public static final String[] CLASS_NAMES = {PasswordPolicy.class.getName()};
035
036 @Override
037 public void deleteStagedModel(
038 String uuid, long groupId, String className, String extraData)
039 throws PortalException {
040
041 Group group = GroupLocalServiceUtil.getGroup(groupId);
042
043 PasswordPolicy passwordPolicy = fetchStagedModelByUuidAndCompanyId(
044 uuid, group.getCompanyId());
045
046 if (passwordPolicy != null) {
047 PasswordPolicyLocalServiceUtil.deletePasswordPolicy(passwordPolicy);
048 }
049 }
050
051 @Override
052 public PasswordPolicy fetchStagedModelByUuidAndCompanyId(
053 String uuid, long companyId) {
054
055 return PasswordPolicyLocalServiceUtil.
056 fetchPasswordPolicyByUuidAndCompanyId(uuid, companyId);
057 }
058
059 @Override
060 public String[] getClassNames() {
061 return CLASS_NAMES;
062 }
063
064 @Override
065 protected void doExportStagedModel(
066 PortletDataContext portletDataContext,
067 PasswordPolicy passwordPolicy)
068 throws Exception {
069
070 Element passwordPolicyElement = portletDataContext.getExportDataElement(
071 passwordPolicy);
072
073 portletDataContext.addClassedModel(
074 passwordPolicyElement,
075 ExportImportPathUtil.getModelPath(passwordPolicy), passwordPolicy);
076 }
077
078 @Override
079 protected void doImportStagedModel(
080 PortletDataContext portletDataContext,
081 PasswordPolicy passwordPolicy)
082 throws Exception {
083
084 long userId = portletDataContext.getUserId(
085 passwordPolicy.getUserUuid());
086
087 ServiceContext serviceContext = portletDataContext.createServiceContext(
088 passwordPolicy);
089
090 PasswordPolicy existingPasswordPolicy =
091 fetchStagedModelByUuidAndCompanyId(
092 passwordPolicy.getUuid(), portletDataContext.getCompanyId());
093
094 if (existingPasswordPolicy == null) {
095 existingPasswordPolicy =
096 PasswordPolicyLocalServiceUtil.fetchPasswordPolicy(
097 portletDataContext.getCompanyId(),
098 passwordPolicy.getName());
099 }
100
101 PasswordPolicy importedPasswordPolicy = null;
102
103 if (existingPasswordPolicy == null) {
104 serviceContext.setUuid(passwordPolicy.getUuid());
105
106 importedPasswordPolicy =
107 PasswordPolicyLocalServiceUtil.addPasswordPolicy(
108 userId, passwordPolicy.isDefaultPolicy(),
109 passwordPolicy.getName(), passwordPolicy.getDescription(),
110 passwordPolicy.getChangeable(),
111 passwordPolicy.isChangeRequired(),
112 passwordPolicy.getMinAge(), passwordPolicy.getCheckSyntax(),
113 passwordPolicy.isAllowDictionaryWords(),
114 passwordPolicy.getMinAlphanumeric(),
115 passwordPolicy.getMinLength(),
116 passwordPolicy.getMinLowerCase(),
117 passwordPolicy.getMinNumbers(),
118 passwordPolicy.getMinSymbols(),
119 passwordPolicy.getMinUpperCase(), passwordPolicy.getRegex(),
120 passwordPolicy.isHistory(),
121 passwordPolicy.getHistoryCount(),
122 passwordPolicy.isExpireable(), passwordPolicy.getMaxAge(),
123 passwordPolicy.getWarningTime(),
124 passwordPolicy.getGraceLimit(), passwordPolicy.isLockout(),
125 passwordPolicy.getMaxFailure(),
126 passwordPolicy.getLockoutDuration(),
127 passwordPolicy.getResetFailureCount(),
128 passwordPolicy.getResetTicketMaxAge(), serviceContext);
129 }
130 else {
131 importedPasswordPolicy =
132 PasswordPolicyLocalServiceUtil.updatePasswordPolicy(
133 existingPasswordPolicy.getPasswordPolicyId(),
134 passwordPolicy.getName(), passwordPolicy.getDescription(),
135 passwordPolicy.isChangeable(),
136 passwordPolicy.isChangeRequired(),
137 passwordPolicy.getMinAge(), passwordPolicy.isCheckSyntax(),
138 passwordPolicy.isAllowDictionaryWords(),
139 passwordPolicy.getMinAlphanumeric(),
140 passwordPolicy.getMinLength(),
141 passwordPolicy.getMinLowerCase(),
142 passwordPolicy.getMinNumbers(),
143 passwordPolicy.getMinSymbols(),
144 passwordPolicy.getMinUpperCase(), passwordPolicy.getRegex(),
145 passwordPolicy.isHistory(),
146 passwordPolicy.getHistoryCount(),
147 passwordPolicy.isExpireable(), passwordPolicy.getMaxAge(),
148 passwordPolicy.getWarningTime(),
149 passwordPolicy.getGraceLimit(), passwordPolicy.isLockout(),
150 passwordPolicy.getMaxFailure(),
151 passwordPolicy.getLockoutDuration(),
152 passwordPolicy.getResetFailureCount(),
153 passwordPolicy.getResetTicketMaxAge(), serviceContext);
154 }
155
156 portletDataContext.importClassedModel(
157 passwordPolicy, importedPasswordPolicy);
158 }
159
160 }