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 <[email protected]> wrote: > 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 > -- Sameera Medagammaddegedara Software Engineer Contact: Email: [email protected] Mobile: + 94 077 255 3005
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
