4 Replies Latest reply on Nov 8, 2007 6:12 AM by jcrump

    Permission issue with "Moderate Content" permisson

      We may have a special permission setup, but still there seems to be a very strange bug here with V1.7 beta. This is repoducible at our site and I made sure to clear out the caches before each try.

       

      By default, "Anyone" and "Registered users" have no rights at all in our setup, but we have a dedicated "Employees" group (database-based, not LDAP) which has permissions on the root space (all "space permissions" but attachment permissions and create poll). Just for the record, all users which are affected by the bug are members of this group.

       

      Below the root space, we have a subspace. In this space, the users can also use the permissions they have inherited from the root space. This works fine as long as a user does not have "moderate" permissions for the subspace; in this case, saving a document after an edit will fail (see exception below). This does not happen when this user has been given "moderate" permissions on the root space, or if the user has also space admin permissions on the subspace. However, since adding the moderate actually breaks the save functionality for this user, this has to be a bug.

       

      2007.10.10 13:35:19 Could not save document.

      com.jivesoftware.base.UnauthorizedException

      at com.jivesoftware.community.proxy.DocumentProxy.setAuthorshipPolicy(DocumentProxy.java:88)

      at com.jivesoftware.community.util.DocumentCollaborationHelper.applyCollaborators(DocumentCollaborationHelper.java:52)

      at com.jivesoftware.community.action.DocCreateAction.execute(DocCreateAction.java:746)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)

      at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)

      at com.opensymphony.webwork.interceptor.TokenInterceptor.handleValidToken(TokenInterceptor.java:161)

      at com.opensymphony.webwork.interceptor.TokenInterceptor.doIntercept(TokenInterceptor.java:127)

      at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

      at com.jivesoftware.community.web.webwork.JiveTokenInterceptor.intercept(JiveTokenInterceptor.java:42)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.FlashInterceptor.intercept(FlashInterceptor.java:40)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175)

      at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)

      at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:55)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:233)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.action.LocaleInterceptor.intercept(LocaleInterceptor.java:71)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.JiveIOCInterceptor.intercept(JiveIOCInterceptor.java:712)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.AuthInterceptor.intercept(AuthInterceptor.java:60)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:42)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.jivesoftware.community.web.webwork.ModuleCheckInterceptor.intercept(ModuleCheckInterceptor.java:49)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

      at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)

      at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)

      at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)

      at com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.web.filter.SetResponseCharacterEncodingFilter.doFilter(SetResponseCharacterEncodingFilter.java:62)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

      at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.web.filter.SetRequestCharacterEncodingFilter.doFilter(SetRequestCharacterEncodingFilter.java:73)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.web.filter.MaintenanceFilter.doFilter(MaintenanceFilter.java:81)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.upgrade.UpgradeFilter.doFilter(UpgradeFilter.java:43)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:77)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.community.web.filter.ApplicationInitializedFilter.doFilter(ApplicationInitializedFilter.java:95)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)

      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)

      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)

      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)

      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)

      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)

      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

      at org.mortbay.jetty.Server.handle(Server.java:285)

      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)

      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765)

      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:627)

      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)

      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)

      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)

      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

        • Re: Permission issue with "Moderate Content" permisson
          scott.hirdes

          If this issue can be reproduced in Clearspace 1.6 we can support it and investigate.  However, we do not offer support for beta versions of the product.

           

          Scott

          • Re: Permission issue with "Moderate Content" permisson
            jcrump

            We're on 1.3 and I think we're experiencing a similar problem with moderation that oddly enough appeared for the first time yesterday.

             

            Even in open spaces, any attempt by a "moderator" to edit a document will result in a system error. This has happened at least 25 times during testing yesterday and today, on 7 different computers, with wiki documents as well as uploads.

             

            Space Admins and regular users seem to be okay, but anyone marked as a moderator cannot edit documents.

             

            In an open space, attempting to save results in "System Error. Document could not be saved."

             

            In a private space, we also get a system error. The stack trace is below.

             

            Thanks for looking at this,

            Jeff

             

            Status Code: 500

            Exception Type: null

            Error Message:

            Request URI: /docs/DOC-2501/edit

            Stack Trace:

            com.jivesoftware.community.proxy.DocumentProxy.startEdit(DocumentProxy.java:756)

            com.jivesoftware.community.action.DocCreateAction.doInput(DocCreateAction.java:660)

            sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

            sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

            java.lang.reflect.Method.invoke(Method.java:597)

            com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)

            com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

            com.jivesoftware.community.web.webwork.FlashInterceptor.intercept(FlashInterceptor.java:40)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.web.webwork.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:55)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.web.webwork.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:42)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.action.LocaleInterceptor.intercept(LocaleInterceptor.java:50)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.web.webwork.JiveIOCInterceptor.intercept(JiveIOCInterceptor.java:694)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.web.webwork.AuthInterceptor.intercept(AuthInterceptor.java:60)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.jivesoftware.community.web.webwork.ModuleCheckInterceptor.intercept(ModuleCheckInterceptor.java:49)

            com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

            com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)

            com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)

            com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)

            com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

            com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.jivesoftware.community.web.filter.PresenceFilter.doFilter(PresenceFilter.java:106)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            org.mercycorps.jiveutils.AnonymousUserCheckFilter.doFilter(AnonymousUserCheckFilter.java:172)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.jivesoftware.community.upgrade.UpgradeFilter.doFilter(UpgradeFilter.java:43)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:71)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)

            org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

            org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

            org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

            org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

            org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

            org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

            org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

            org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

            org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

            org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

            org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)

            org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)

            org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)

            org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

            java.lang.Thread.run(Thread.java:619)

            com.jivesoftware.base.UnauthorizedException