Hi Sameera, It is In-Review to Approved
On Wed, Oct 22, 2014 at 5:36 PM, Sameera Medagammaddegedara < [email protected]> wrote: > Hi DIlan, > > Could you provide the states involved in the transition? > > Thank You, > Sameera > > On Wed, Oct 22, 2014 at 4:27 PM, Chathura Dilan <[email protected]> > wrote: > >> Hi, >> >> I'm getting the following exception when changing the life-cycle state ( >> to Approve or Reject) in mobile publisher with reviewer role. >> >> JaggeryTravellingPermissionLifeCycle >> org.wso2.carbon.registry.core.secure.AuthorizationFailedException: Resource >> update failed. User rev is not authorized to update the resource >> /_system/governance/mobileapps/pub/android/WSO2 App/1.0. >> [2014-10-22 15:33:27,966] ERROR - GovernanceArtifactImpl Invoking >> lifecycle action "Approve" failed >> org.wso2.carbon.registry.core.exceptions.RegistryException: Resource >> update failed. User rev is not authorized to update the resource >> /_system/governance/mobileapps/pub/android/WSO2 App/1.0. >> at >> org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle.invoke(JaggeryTravellingPermissionLifeCycle.java:510) >> at >> org.wso2.carbon.governance.registry.eventing.handlers.GovernanceEventingHandler.invokeAspect(GovernanceEventingHandler.java:243) >> at >> org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.invokeAspect(HandlerManager.java:2792) >> at >> org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.invokeAspect(HandlerLifecycleManager.java:531) >> at >> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.invokeAspect(EmbeddedRegistry.java:2550) >> at >> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.invokeAspect(CacheBackedRegistry.java:427) >> at >> org.wso2.carbon.registry.core.session.UserRegistry.invokeAspect(UserRegistry.java:1930) >> at >> org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifactImpl.invokeAction(GovernanceArtifactImpl.java:625) >> at >> org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifactImpl.invokeAction(GovernanceArtifactImpl.java:605) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) >> at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225) >> at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) >> at org.mozilla.javascript.gen.artifacts_17._c_anonymous_21(artifacts:283) >> at org.mozilla.javascript.gen.artifacts_17.call(artifacts) >> at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_mobileAppsLifeCycleChange_24(/publisher/apis/v1/lifecycle_api_router.jag:473) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) >> at >> org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_anonymous_9(/publisher/apis/v1/lifecycle_api_router.jag:138) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) >> at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) >> at >> org.jaggeryjs.rhino.publisher.modules.c4._c_anonymous_12(/publisher/modules/router-g.js:183) >> at >> org.jaggeryjs.rhino.publisher.modules.c4.call(/publisher/modules/router-g.js) >> at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_anonymous_1(/publisher/apis/v1/lifecycle_api_router.jag:438) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) >> at >> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430) >> at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269) >> at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) >> at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >> at >> org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_17(/publisher/modules/publisher.js:438) >> at >> org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js) >> at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) >> at >> org.mozilla.javascript.gen._store__server_js_8._c_anonymous_17([store]/server.js:271) >> at org.mozilla.javascript.gen._store__server_js_8.call([store]/server.js) >> at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >> at >> org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_16(/publisher/modules/publisher.js:433) >> at >> org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js) >> at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4._c_script_0(/publisher/apis/v1/lifecycle_api_router.jag:24) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) >> at >> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) >> at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.call(/publisher/apis/v1/lifecycle_api_router.jag) >> at >> org.jaggeryjs.rhino.publisher.apis.v_1.c4.exec(/publisher/apis/v1/lifecycle_api_router.jag) >> at >> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567) >> at >> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) >> at >> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:536) >> at org.jaggeryjs.jaggery.core.JaggeryServlet.doPut(JaggeryServlet.java:39) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:758) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) >> at >> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) >> at >> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) >> at >> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) >> at >> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >> at >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) >> at >> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) >> at >> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) >> at >> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) >> at >> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >> at >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> at java.lang.Thread.run(Thread.java:745) >> >> >> >> >> >> >> >> >> >> >> >> >> >> Here the user rev is assigned to both publisher and reviewer role in the >> publisher. I also applied the patches which is in ES 1.2.0, but no luck. >> >> Here is the mobile life cycle >> >> >> >> >> >> >> >> >> >> >> >> <aspect name="MobileAppLifeCycle" >> class="org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle"> >> <configuration type="literal"> >> <lifecycle> >> <scxml xmlns="http://www.w3.org/2005/07/scxml" >> version="1.0" >> initialstate="Initial"> >> <state id='Initial'> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Create" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Created" >> >> value="Internal/private_{asset_author}:+add,+delete,+authorize"/> >> <parameter name="STATE_RULE2:Created" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> </data> >> </datamodel> >> <transition event="Create" target="Created"/> >> </state> >> <state id="Created"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Submit" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:In-Review" >> >> value="Internal/private_{asset_author}:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE2:In-Review" >> value="Internal/reviewer:+add,-delete,+authorize"/> >> <parameter name="STATE_RULE3:In-Review" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> </data> >> </datamodel> >> <transition event="Submit" target="In-Review"/> >> </state> >> <state id="In-Review"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Approve" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Approved" >> >> value="Internal/private_{asset_author}:+get,+add,-delete,+authorize"/> >> <parameter name="STATE_RULE2:Approved" >> value="Internal/reviewer:+add,+delete,+authorize"/> >> <parameter name="STATE_RULE3:Approved" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> <execution forEvent="Reject" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Rejected" >> >> value="Internal/private_{asset_author}:+add,+delete,+authorize"/> >> <parameter name="STATE_RULE2:Rejected" >> value="Internal/reviewer:+add,+delete,+authorize"/> >> <parameter name="STATE_RULE3:Rejected" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> </data> >> </datamodel> >> <transition event="Approve" target="Approved"/> >> <transition event="Reject" target="Rejected"/> >> </state> >> <state id="Approved"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Publish" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Published" >> >> value="Internal/private_{asset_author}:+add,+delete,+authorize"/> >> <parameter name="STATE_RULE2:Published" >> >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> >> value="Internal/everyone:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> value="system/wso2.anonymous.role:+get" /> >> </execution> >> </data> >> </datamodel> >> <transition event="Publish" target="Published"/> >> </state> >> <state id="Rejected"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Re-Submit" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:In-Review" >> >> value="Internal/private_{asset_author}:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE2:In-Review" >> value="Internal/reviewer:+add,-delete,+authorize"/> >> <parameter name="STATE_RULE3:In-Review" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> </data> >> </datamodel> >> <transition event="Re-Submit" target="In-Review"/> >> </state> >> <state id="Published"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Unpublish" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Unpublished" >> >> value="Internal/private_{asset_author}:+add,-delete,+authorize"/> >> <parameter name="STATE_RULE2:Unpublished" >> >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Unpublished" >> >> value="Internal/everyone:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> value="system/wso2.anonymous.role:-get" /> >> </execution> >> <execution forEvent="Deprecate" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Deprecated" >> >> value="Internal/private_{asset_author}:+add,-delete,+authorize"/> >> <parameter name="STATE_RULE2:Deprecated" >> >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Deprecated" >> >> value="Internal/everyone:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> value="system/wso2.anonymous.role:-get" /> >> </execution> >> </data> >> </datamodel> >> <transition event="Unpublish" target="Unpublished"/> >> <transition event="Deprecate" target="Deprecated"/> >> </state> >> <state id="Unpublished"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Publish" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Published" >> >> value="Internal/private_{asset_author}:+add,-delete,+authorize"/> >> <parameter name="STATE_RULE2:Published" >> >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> >> value="Internal/everyone:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> value="system/wso2.anonymous.role:+get" /> >> </execution> >> <execution forEvent="Retire" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Retired" >> >> value="Internal/private_{asset_author}:-add,+delete,-authorize"/> >> <parameter name="STATE_RULE2:Retired" >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Retired" >> value="Internal/everyone:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Published" >> value="system/wso2.anonymous.role:-get" /> >> </execution> >> </data> >> </datamodel> >> <transition event="Publish" target="Published"/> >> <transition event="Retire" target="Retired"/> >> </state> >> <state id="Deprecated"> >> <datamodel> >> <data name="transitionExecution"> >> <execution forEvent="Retire" >> class="org.wso2.jaggery.scxml.generic.GenericExecutor"> >> <parameter name="PERMISSION:get" >> value=" >> http://www.wso2.org/projects/registry/actions/get"/> >> <parameter name="PERMISSION:add" >> value=" >> http://www.wso2.org/projects/registry/actions/add"/> >> <parameter name="PERMISSION:delete" >> value=" >> http://www.wso2.org/projects/registry/actions/delete"/> >> <parameter name="PERMISSION:authorize" >> value="authorize"/> >> >> <parameter name="STATE_RULE1:Retired" >> >> value="Internal/private_{asset_author}:-add,+delete,-authorize"/> >> <parameter name="STATE_RULE2:Retired" >> value="Internal/reviewer:-add,-delete,-authorize"/> >> <parameter name="STATE_RULE3:Retired" >> value="Internal/everyone:-add,-delete,-authorize"/> >> </execution> >> </data> >> </datamodel> >> <transition event="Retire" target="Retired"/> >> </state> >> <state id="Retired"/> >> </scxml> >> </lifecycle> >> </configuration> >> </aspect> >> >> >> >> >> Any idea? >> >> >> -- >> Regards, >> >> Chatura Dilan Perera >> *(Senior Software Engineer** - WSO2 Inc.* * [Mobile])* >> www.dilan.me >> > > > > -- > Sameera Medagammaddegedara > Software Engineer > > Contact: > Email: [email protected] > Mobile: + 94 077 255 3005 > -- Regards, Chatura Dilan Perera *(Senior Software Engineer** - WSO2 Inc.* * [Mobile])* www.dilan.me
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
