Skip to content

Commit a1e8483

Browse files
committed
LUTECE-2184 : Move AliasPorletJspBean over to using setPortletCommonData
This allows AliasPortlets creation and modification to be CSRF protected
1 parent a81d1fa commit a1e8483

File tree

3 files changed

+319
-44
lines changed

3 files changed

+319
-44
lines changed

src/java/fr/paris/lutece/portal/business/portlet/AliasPortlet.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,14 @@ public int getAliasId( )
8585
@Override
8686
public boolean isContentGeneratedByXmlAndXsl( )
8787
{
88-
Portlet portletParent= PortletHome.findByPrimaryKey( getAliasId( ) );
89-
return portletParent.isContentGeneratedByXmlAndXsl( ) ;
88+
if ( getAliasId( ) == 0 )
89+
{
90+
// alias Id not yet set. We don't yet know how we're generated
91+
// saying false means we don't yet need a styleId
92+
return false;
93+
}
94+
Portlet portletParent = PortletHome.findByPrimaryKey( getAliasId( ) );
95+
return portletParent.isContentGeneratedByXmlAndXsl( );
9096
}
9197
/**
9298
* Returns the html content code of the Alias portlet

src/java/fr/paris/lutece/portal/web/portlet/AliasPortletJspBean.java

Lines changed: 9 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,7 @@ public class AliasPortletJspBean extends PortletJspBean
6060
// Right
6161
public static final String RIGHT_MANAGE_ADMIN_SITE = "CORE_ADMIN_SITE";
6262
private static final long serialVersionUID = 1894295808070813451L;
63-
private static final String PARAM_PORTLET_NAME = "portlet_name";
64-
private static final String PARAM_ORDER = "order";
65-
private static final String PARAM_COLUMN = "column";
6663
private static final String PARAM_ALIAS_ID = "alias_id";
67-
private static final String PARAM_ACCEPT_ALIAS = "accept_alias";
6864
private static final String MARK_ALIAS_PORTLETS_LIST = "alias_portlets_list";
6965
private static final String MARK_ALIAS_PORTLET = "alias_portlet";
7066
private static final String LABEL_ALIAS_PORTLET_NAME = "portal.site.portlet_alias.portlet.name.label";
@@ -87,33 +83,14 @@ public String doCreate( HttpServletRequest request )
8783
{
8884
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
8985
}
90-
91-
// Gets the parameters of the alias portlet posted in the request
92-
String strName = request.getParameter( PARAM_PORTLET_NAME );
93-
94-
// mandatory field
95-
if ( ( strName == null ) || strName.trim( ).equals( "" ) )
86+
String strError = setPortletCommonData( request, aliasPortlet );
87+
if ( strError != null )
9688
{
97-
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
89+
return strError;
9890
}
9991

100-
String strOrder = request.getParameter( PARAM_ORDER );
101-
int nOrder = Integer.parseInt( strOrder );
102-
String strColumn = request.getParameter( PARAM_COLUMN );
103-
int nColumn = Integer.parseInt( strColumn );
104-
String strAcceptAlias = request.getParameter( PARAM_ACCEPT_ALIAS );
105-
int nAcceptAlias = Integer.parseInt( strAcceptAlias );
106-
aliasPortlet.setName( strName );
107-
aliasPortlet.setOrder( nOrder );
108-
aliasPortlet.setColumn( nColumn );
109-
aliasPortlet.setAcceptAlias( nAcceptAlias );
110-
111-
String strPageId = request.getParameter( PARAMETER_PAGE_ID );
112-
int nPageId = Integer.parseInt( strPageId );
11392
int nAliasId = Integer.parseInt( strAliasId );
114-
aliasPortlet.setPageId( nPageId );
11593
aliasPortlet.setAliasId( nAliasId );
116-
11794
// gets the style of the parent portlet
11895
Portlet portlet = PortletHome.findByPrimaryKey( nAliasId );
11996
aliasPortlet.setStyleId( portlet.getStyleId( ) );
@@ -122,7 +99,7 @@ public String doCreate( HttpServletRequest request )
12299
AliasPortletHome.getInstance( ).create( aliasPortlet );
123100

124101
// Displays the page with the new portlet
125-
return getPageUrl( nPageId );
102+
return getPageUrl( aliasPortlet.getPageId( ) );
126103
}
127104

128105
/**
@@ -139,24 +116,14 @@ public String doModify( HttpServletRequest request )
139116
String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
140117
int nPortletId = Integer.parseInt( strPortletId );
141118
AliasPortlet portlet = (AliasPortlet) AliasPortletHome.findByPrimaryKey( nPortletId );
142-
143-
// Gets the parameters of the alias portlet posted in the request
144-
String strName = request.getParameter( PARAM_PORTLET_NAME );
145-
String strOrder = request.getParameter( PARAM_ORDER );
146-
int nOrder = Integer.parseInt( strOrder );
147-
String strColumn = request.getParameter( PARAM_COLUMN );
148-
int nColumn = Integer.parseInt( strColumn );
149-
150-
// mandatory field
151-
if ( ( strName == null ) || strName.trim( ).equals( "" ) )
119+
// detach from previous portlet. Allows to not care about style id
120+
portlet.setAliasId( 0 );
121+
String strError = setPortletCommonData( request, portlet );
122+
if ( strError != null )
152123
{
153-
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
124+
return strError;
154125
}
155126

156-
portlet.setName( strName );
157-
portlet.setOrder( nOrder );
158-
portlet.setColumn( nColumn );
159-
160127
String strIdAlias = request.getParameter( PARAM_ALIAS_ID );
161128
int nIdAlias = Integer.parseInt( strIdAlias );
162129
portlet.setAliasId( nIdAlias );

0 commit comments

Comments
 (0)