[Dev] Permission issue when changing the life cycle state in ES publisher
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
Re: [Dev] Permission issue when changing the life cycle state in ES publisher
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 chathu...@wso2.com 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
Re: [Dev] Permission issue when changing the life cycle state in ES publisher
Hi Sameera, It is In-Review to Approved On Wed, Oct 22, 2014 at 5:36 PM, Sameera Medagammaddegedara samee...@wso2.com 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 chathu...@wso2.com 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
Re: [Dev] Permission issue when changing the life cycle state in ES publisher
Hi Dilan, As per our offline discussion this seems to be caused by the reviewer attempting change the state to a state in which he/she has no get rights to the resource. One way of tackle this problem would be to do lifecycle transitions as an admin user after checking the permissions of the logged in user.However, the downside to do tackling this problem with this approach is that the lifecycle history records the transition as been done by the admin user. The necessary methods to implement this functionality can found at: 1. *permissions.js *(URL: https://github.com/wso2-dev/product-es/blob/master/modules/apps/publisher/modules/permissions.js) https://github.com/wso2-dev/product-es/blob/master/modules/apps/publisher/modules/permissions.js - This script will determine if a given user has the necessary permissions to change the state 2. *rxt manager* (URL: https://github.com/wso2-dev/product-es/blob/master/modules/apps/publisher/modules/rxt.manager.js#L116 ) - Provides a utility method to obtain an artifact manager instance (Used to perform the lifecycle transition) which uses the system registry of the current tenant A sample implementation can be found here: https://github.com/wso2-dev/product-es/blob/master/modules/apps/publisher/apis/v1/lifecycle_api_router.jag#L171 Thank You, Sameera On Thu, Oct 23, 2014 at 8:01 AM, Chathura Dilan chathu...@wso2.com wrote: Hi Sameera, It is In-Review to Approved On Wed, Oct 22, 2014 at 5:36 PM, Sameera Medagammaddegedara samee...@wso2.com 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 chathu...@wso2.com 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