Hela Zekri created GTNPORTAL-2897:
-------------------------------------
Summary: Problem when changing owner type to "group" while adding a
page in Page Management
Key: GTNPORTAL-2897
URL:
https://issues.jboss.org/browse/GTNPORTAL-2897
Project: GateIn Portal
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 3.5.3.Final
Reporter: Hela Zekri
Priority: Critical
*Please follow these steps :*
* login as root
* Go to Group --> Organization --> Users and Groups Manager
* In User Management tab, edit user John, go to User Membership and delete all membership
type "manager" in all groups.
* Sign out and login as john
* Import applications from "Application Registry Portlet" (Add a page to access
this portlet). Then, add a page containing Page Management Portlet.
* Go to this page and click "add page". Choose "group" as owner type.
*The owner id will remain "classic" and an exception is thrown.*
{noformat}
GRAVE: Error while handling request
java.lang.NullPointerException
at
org.exoplatform.portal.webui.page.UIPageForm$ChangeOwnerTypeActionListener.execute(UIPageForm.java:321)
at org.exoplatform.webui.event.Event.broadcast(Event.java:89)
at
org.exoplatform.webui.core.lifecycle.UIFormLifecycle.processDecode(UIFormLifecycle.java:59)
at
org.exoplatform.webui.core.lifecycle.UIFormLifecycle.processDecode(UIFormLifecycle.java:40)
at org.exoplatform.webui.core.UIComponent.processDecode(UIComponent.java:124)
at org.exoplatform.webui.form.UIFormTabPane.processDecode(UIFormTabPane.java:80)
at
org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processDecode(UIPortalApplicationLifecycle.java:59)
at
org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processDecode(UIPortalApplicationLifecycle.java:37)
at org.exoplatform.webui.core.UIComponent.processDecode(UIComponent.java:124)
at
org.exoplatform.portal.webui.workspace.UIPortalApplication.processDecode(UIPortalApplication.java:537)
at
org.exoplatform.portal.application.PortalRequestHandler.processRequest(PortalRequestHandler.java:182)
at
org.exoplatform.portal.application.PortalRequestHandler.execute(PortalRequestHandler.java:161)
at org.exoplatform.web.WebAppController.service(WebAppController.java:358)
at
org.exoplatform.portal.application.PortalController.onService(PortalController.java:125)
at
org.exoplatform.container.web.AbstractHttpServlet.service(AbstractHttpServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:84)
at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:54)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.exoplatform.web.filter.ExtensibleFilter$ExtensibleFilterChain.doFilter(ExtensibleFilter.java:114)
at org.exoplatform.web.filter.ExtensibleFilter.doFilter(ExtensibleFilter.java:84)
at org.exoplatform.web.filter.GenericFilter.doFilter(GenericFilter.java:78)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.CacheUserProfileFilter.doFilter(CacheUserProfileFilter.java:73)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter.doFilter(ThreadLocalSessionProviderInitializedFilter.java:116)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.exoplatform.services.security.web.SetCurrentIdentityFilter.doFilter(SetCurrentIdentityFilter.java:88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.exoplatform.portal.application.localization.LocalizationFilter.doFilter(LocalizationFilter.java:178)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.login.ClusteredSSOFilter.doFilter(ClusteredSSOFilter.java:73)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.exoplatform.container.web.PortalContainerFilter.doFilter(PortalContainerFilter.java:69)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
{noformat}
In fact, when user changes the owner type to "group", the expected behavior is
that *all groups in which he has the role "manager" are returned in the next
select Box.*
But in this case, user doesn't have any group in which he has "manager" as
membership type. This behavior is not expected in the code, so the owner id keeps the
value of "intranet" and a "NullPointerException" is thrown.
This is due to this instruction in "ChangeOwnerTypeActionListener" of
"UIPageForm" class :
{code}
String groupIdSelected = uiForm.groupIdSelectBox.getValue();
{code}
Indeed, when there isn't any group in which user has the memebership Type
"manager", the value of "uiForm.groupIdSelectBox" is null, that's
why the problem appears.
*If user hasn't the role "manager" in any group, there are two possible
solutions to fix the problem :*
1- Only the owner type "portal" appears.
2- In owner type, both "portal" and "group" appear. But if user
chooses "group", a message appears to inform him that he hasn't the
permissions to add a page in any group.
(!) The memebership "manager" is set in "portal-configuration.xml" as
value-param to UserACL component :
{code:xml}
<value-param>
<name>navigation.creator.membership.type</name>
<description>specific membership type have full permission with group
navigation</description>
<value>manager</value>
</value-param>
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira