Hi,

AFAIK in order to execute an action based on a lifecycle state change, you
need to use a lifecycle executor. You can find the information about
standard executors in [1]
<https://docs.wso2.com/display/Governance520/Supported+Standard+Executors>.
Also, you can implement a custom executor as well. The following article [2]
<http://wso2.com/library/articles/2015/07/wso2-governance-registry-governance-framework-extension-points/>
and blog post [3]
<http://sencs.blogspot.com/2016/05/how-to-write-simple-g-reg-lifecycle.html>
gives a good explanation about adding custom lifecycle executors.


[1] -
https://docs.wso2.com/display/Governance520/Supported+Standard+Executors
[2] -
http://wso2.com/library/articles/2015/07/wso2-governance-registry-governance-framework-extension-points/
[3] -
http://sencs.blogspot.com/2016/05/how-to-write-simple-g-reg-lifecycle.html

On Fri, Jul 22, 2016 at 4:41 PM, Yasima Dewmini <[email protected]> wrote:

> Hi,
>
> I need to set permission for all the roles including user defined roles,
> when state transitions take place in life cycles. How can I achieve this?
> And also admin can edit a process when that process is in retired state. I
> need to avoid that scenario also.
>
> Any thought regarding this is appreciated.
>
> The life cycle is as follows.
>
> <aspect name="ProcessLifeCycle" 
> class="org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle">
>     <configuration type="literal">
>         <lifecycle>
>             <scxml xmlns="http://www.w3.org/2005/07/scxml";
>                    version="1.0"
>                    initialstate="Development">
>                 <state id='Development'>
>                     <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}:+get,-add,+delete,-authorize"/>
>                                 <parameter name="STATE_RULE2:In-Review"
>                                            
> value="Internal/everyone:+get,-add,-delete,-authorize"/>
>                                 <parameter name="STATE_RULE3:In-Review"
>                                            
> value="Internal/publisher:+get,+add,+delete,+authorize"/>
>                                 <parameter name="STATE_RULE4:In-Review"
>                                            
> value="system/wso2.anonymous.role:+get,-add,-delete,-authorize" />
>                             </execution>
>                         </data>
>                     </datamodel>
>                     <transition event="Submit" target="In-Review"/>
>                 </state>
>                 <state id="In-Review">
>                     <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}:+get,-add,-delete,-authorize"/>
>                                 <parameter name="STATE_RULE2:Published"
>                                            
> value="Internal/everyone:+get,-add,-delete,-authorize"/>
>                                 <parameter name="STATE_RULE3:Published"
>                                            
> value="Internal/publisher:+get,+add,+delete,+authorize"/>
>                                 <parameter name="STATE_RULE4:Published"
>                                            
> value="system/wso2.anonymous.role:+get,-add,-delete,-authorize" />
>                             </execution>
>                         </data>
>                         <data name="transitionPermission">
>                             <permission forEvent="Publish" 
> roles="Internal/publisher,admin"/>
>                         </data>
>                     </datamodel>
>                     <transition event="Publish" target="Published"/>
>                 </state>
>                 <state id="Published">
>                     <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}:+get,-add,+delete,-authorize"/>
>                                 <parameter name="STATE_RULE2:Retired"
>                                            
> value="Internal/everyone:-get,-add,-delete,-authorize"/>
>                                 <parameter name="STATE_RULE3:Retired"
>                                            
> value="Internal/publisher:+get,-add,+delete,-authorize"/>
>                                 <parameter name="STATE_RULE4:Retired"
>                                            
> value="system/wso2.anonymous.role:-get,-add,-delete,-authorize" />
>                             </execution>
>                             <execution forEvent="Promote" 
> 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:Development"
>                                            
> value="Internal/private_{asset_author}:+get,+add,+delete,+authorize"/>
>                                 <parameter name="STATE_RULE2:Development"
>                                            
> value="Internal/everyone:+get,-add,-delete,-authorize"/>
>                                 <parameter name="STATE_RULE3:Development"
>                                            
> value="Internal/publisher:+get,+add,+delete,+authorize"/>
>                                 <parameter name="STATE_RULE4:Development"
>                                            
> value="system/wso2.anonymous.role:+get,-add,-delete,-authorize" />
>                             </execution>
>                         </data>
>                         <data name="transitionPermission">
>                             <permission forEvent="Retire" 
> roles="Internal/publisher,admin"/>
>                             <permission forEvent="Promote" 
> roles="Internal/publisher,admin"/>
>                         </data>
>                     </datamodel>
>                     <transition event="Retire" target="Retired"/>
>                     <transition event="Promote" target="Development"/>
>                 </state>
>                 <state id="Retired"/>
>             </scxml>
>         </lifecycle>
>     </configuration>
> </aspect>
>
>
> Regards,
> Yasima.
>
>
> --
> http://wso2.com/signatureYasima Dewmini
> Software Engineer, WSO2, Inc.
> Email: [email protected]
> Mobile: +94713117081
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 

Madawa Soysa / Software Engineer
[email protected] / +94714616050

WSO2 Inc.
lean.enterprise.middleware

[image: Twitter]  <https://twitter.com/madawa_rc>         [image: LinkedIn]
<https://www.linkedin.com/in/madawasoysa>  [image: Github]
<https://github.com/madawas> [image: Tumblr]  <http://madawas.tumblr.com/>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to