Skip to content

Commit cf545e0

Browse files
committed
ENG-5491: modified content action to preset owner and joinGroups from user preferences
1 parent 4c8722d commit cf545e0

File tree

2 files changed

+50
-7
lines changed

2 files changed

+50
-7
lines changed

cms-plugin/src/main/java/com/agiletec/plugins/jacms/apsadmin/content/ContentAction.java

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
*/
1414
package com.agiletec.plugins.jacms.apsadmin.content;
1515

16-
import org.entando.entando.aps.util.PageUtils;
17-
import org.entando.entando.ent.exception.EntException;
1816
import com.agiletec.aps.system.services.baseconfig.ConfigInterface;
1917
import com.agiletec.aps.system.services.group.Group;
2018
import com.agiletec.aps.system.services.page.IPage;
2119
import com.agiletec.aps.system.services.page.IPageManager;
2220
import com.agiletec.aps.system.services.pagemodel.IPageModelManager;
2321
import com.agiletec.aps.system.services.pagemodel.PageModel;
22+
import com.agiletec.aps.system.services.user.UserDetails;
2423
import com.agiletec.aps.util.ApsWebApplicationUtils;
2524
import com.agiletec.aps.util.SelectItem;
2625
import com.agiletec.apsadmin.system.ApsAdminSystemConstants;
@@ -30,17 +29,20 @@
3029
import com.agiletec.plugins.jacms.aps.system.services.content.model.SymbolicLink;
3130
import com.agiletec.plugins.jacms.aps.system.services.resource.IResourceManager;
3231
import com.agiletec.plugins.jacms.apsadmin.util.ResourceIconUtil;
33-
import org.apache.commons.lang.StringUtils;
34-
import org.entando.entando.plugins.jacms.aps.util.CmsPageUtil;
35-
import org.entando.entando.ent.util.EntLogging.EntLogger;
36-
import org.entando.entando.ent.util.EntLogging.EntLogFactory;
37-
3832
import java.util.ArrayList;
33+
import java.util.Arrays;
3934
import java.util.Collections;
4035
import java.util.Date;
4136
import java.util.List;
4237
import java.util.Map;
38+
import org.apache.commons.lang.StringUtils;
39+
import org.entando.entando.aps.system.services.userpreferences.IUserPreferencesManager;
40+
import org.entando.entando.aps.system.services.userpreferences.UserPreferences;
4341
import org.entando.entando.aps.system.services.widgettype.IWidgetTypeManager;
42+
import org.entando.entando.aps.util.PageUtils;
43+
import org.entando.entando.ent.exception.EntException;
44+
import org.entando.entando.ent.util.EntLogging.EntLogFactory;
45+
import org.entando.entando.ent.util.EntLogging.EntLogger;
4446

4547
/**
4648
* Action principale per la redazione contenuti.
@@ -57,6 +59,8 @@ public class ContentAction extends AbstractContentAction {
5759
private transient IResourceManager resourceManager;
5860
private transient IWidgetTypeManager widgetTypeManager;
5961

62+
private transient IUserPreferencesManager userPreferencesManager;
63+
6064
private Map references;
6165

6266
private String contentId;
@@ -136,6 +140,35 @@ public String copyPaste() {
136140
}
137141

138142
public String forwardToEntryContent() {
143+
UserDetails user = this.getCurrentUser();
144+
Content content = this.updateContentOnSession();
145+
final String username = getCurrentUser().getUsername();
146+
147+
try {
148+
UserPreferences pref = this.getUserPreferencesManager()
149+
.getUserPreferences(username);
150+
if (pref != null) {
151+
final String defaultContentOwnerGroup = pref.getDefaultContentOwnerGroup();
152+
final String defaultContentJoinGroups = pref.getDefaultContentJoinGroups();
153+
154+
if (StringUtils.isNotBlank(defaultContentJoinGroups)) {
155+
String[] joinGroup = defaultContentJoinGroups.split(";");
156+
Arrays.stream(joinGroup)
157+
.forEach(g -> {
158+
_logger.info("adding join group {} from user {} preferences", g, username);
159+
content.addGroup(g);
160+
});
161+
}
162+
if (StringUtils.isNotBlank(defaultContentOwnerGroup)) {
163+
content.setMainGroup(defaultContentOwnerGroup);
164+
_logger.info("setting ownerGroup to {}", defaultContentOwnerGroup);
165+
}
166+
}
167+
} catch (Exception e) {
168+
_logger.error("error setting default owner and join groups from user preferences", e.getMessage());
169+
// made on purpose, we don't want to block content editing
170+
return SUCCESS;
171+
}
139172
return SUCCESS;
140173
}
141174

@@ -472,4 +505,13 @@ public void setResourceIconUtil(ResourceIconUtil resourceIconUtil) {
472505
this.resourceIconUtil = resourceIconUtil;
473506
}
474507

508+
509+
public IUserPreferencesManager getUserPreferencesManager() {
510+
return userPreferencesManager;
511+
}
512+
513+
public void setUserPreferencesManager(
514+
IUserPreferencesManager userPreferencesManager) {
515+
this.userPreferencesManager = userPreferencesManager;
516+
}
475517
}

cms-plugin/src/main/resources/spring/plugins/jacms/apsadmin/content/contentActionsConfig.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
<property name="resourceManager" ref="jacmsResourceManager" />
5757
<property name="pageModelManager" ref="PageModelManager" />
5858
<property name="widgetTypeManager" ref="WidgetTypeManager" />
59+
<property name="userPreferencesManager" ref="UserPreferencesManager" />
5960
</bean>
6061

6162
<bean id="jacmsEntryContentActionActionsHookPoint" class="com.agiletec.apsadmin.system.plugin.HookPointElementContainer" >

0 commit comments

Comments
 (0)