1313 */
1414package com .agiletec .plugins .jacms .apsadmin .content ;
1515
16- import org .entando .entando .aps .util .PageUtils ;
17- import org .entando .entando .ent .exception .EntException ;
1816import com .agiletec .aps .system .services .baseconfig .ConfigInterface ;
1917import com .agiletec .aps .system .services .group .Group ;
2018import com .agiletec .aps .system .services .page .IPage ;
2119import com .agiletec .aps .system .services .page .IPageManager ;
2220import com .agiletec .aps .system .services .pagemodel .IPageModelManager ;
2321import com .agiletec .aps .system .services .pagemodel .PageModel ;
22+ import com .agiletec .aps .system .services .user .UserDetails ;
2423import com .agiletec .aps .util .ApsWebApplicationUtils ;
2524import com .agiletec .aps .util .SelectItem ;
2625import com .agiletec .apsadmin .system .ApsAdminSystemConstants ;
3029import com .agiletec .plugins .jacms .aps .system .services .content .model .SymbolicLink ;
3130import com .agiletec .plugins .jacms .aps .system .services .resource .IResourceManager ;
3231import 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-
3832import java .util .ArrayList ;
33+ import java .util .Arrays ;
3934import java .util .Collections ;
4035import java .util .Date ;
4136import java .util .List ;
4237import 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 ;
4341import 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}
0 commit comments