2017-05-24 2 views
0

사용자, 관리자 및 로그리스트의 3 가지 역할이 있습니다. 그리고 '승인 됨'상태의 사용자와 관리자가 필요하고 'to_approve_second'는 쓰기 권한이 없습니다.그룹 역할에 대한 도메인 이름은 그룹 상태에 따라 달라집니다.

모든 사용자가 쓰기 권한을 가지고 ir.rules이 있습니다 :

<field name="name">Purchase Request User Rule</field> 

    <field name="model_id" ref="model_purchase_request"/> 

    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 

    <field name="perm_read" eval="True"/> 

    <field name="perm_write" eval="False"/> 

    <field name="perm_create" eval="False"/> 

    <field name="perm_unlink" eval="False"/> 

    <field name="domain_force">[('state','in',('approved', 'to_approve_second'))]</field> 

</record> 

<field name="name">Purchase Request Manager Rule</field> 

    <field name="model_id" ref="model_purchase_request"/> 

    <field name="groups" eval="[(6,0, [ref('group_purchase_request_manager')])]"/> 

    <field name="perm_read" eval="True"/> 

    <field name="perm_write" eval="False"/> 

    <field name="perm_create" eval="False"/> 

    <field name="perm_unlink" eval="False"/> 

    <field name="domain_force">[('state','in',('approved', 'to_approve_second'))]</field> 

</record> 
012 : 내가 추가하려고

<field name="name">Follow Purchase Request</field> 

    <field name="model_id" ref="model_purchase_request"/> 

    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 

    <field name="perm_read" eval="True"/> 

    <field name="perm_write" eval="False"/> 

    <field name="perm_create" eval="False"/> 

    <field name="perm_unlink" eval="False"/> 

    <field name="domain_force">['|',('requested_by','=',user.id), 

            ('message_partner_ids', 'in', [user.partner_id.id])]</field> 

</record> 



<record id="purchase_request_rule" model="ir.rule"> 

    <field name="name">Purchase Request User</field> 

    <field name="model_id" ref="model_purchase_request"/> 

    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 

    <field name="perm_read" eval="True"/> 

    <field name="perm_write" eval="True"/> 

    <field name="perm_create" eval="True"/> 

    <field name="perm_unlink" eval="True"/> 

    <field name="domain_force">[('requested_by','=',user.id)]</field> 

</record> 



<record id="purchase_request_manager_rule" model="ir.rule"> 

    <field name="name">Purchase Request Manager</field> 

    <field name="model_id" ref="model_purchase_request"/> 

    <field name="groups" eval="[(6,0, [ref('group_purchase_request_manager')])]"/> 

    <field name="perm_read" eval="True"/> 

    <field name="perm_write" eval="True"/> 

    <field name="perm_create" eval="True"/> 

    <field name="perm_unlink" eval="True"/> 

</record> 

하지만 아무 일도 발생하지 않습니다. 사용자와 관리자는 '승인 됨'및 '승인 불가'상태에서 문서를 수정할 수 있습니다. 무엇이 잘못 될 수 있습니까?

답변

0

나는 해결책을 찾았습니다!

<record id="purchase_request_followers_rule" model="ir.rule"> 
    <field name="name">Follow Purchase Request</field> 
    <field name="model_id" ref="model_purchase_request"/> 
    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 
    <field name="perm_read" eval="True"/> 
    <field name="perm_write" eval="False"/> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="domain_force">['|',('requested_by','=',user.id), 
            ('message_partner_ids', 'in', [user.partner_id.id])]</field> 
</record> 

<record id="purchase_request_rule" model="ir.rule"> 
    <field name="name">Purchase Request User</field> 
    <field name="model_id" ref="model_purchase_request"/> 
    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 
    <field name="perm_read" eval="True"/> 
    <field name="perm_write" eval="False"/> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="domain_force">[('requested_by','=',user.id)]</field> 
</record> 

<record id="no_edit_rule" model="ir.rule"> 
    <field name="name">No Edit Rule</field> 
    <field name="model_id" ref="model_purchase_request"/> 
    <field name="groups" eval="[(6,0, [ref('group_purchase_request_user')])]"/> 
    <field name="perm_read" eval="False"/> 
    <field name="perm_write" eval="True"/> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="domain_force">[('requested_by','=',user.id),('state','not in',('approved', 'to_approve_second'))] 

<record id="purchase_request_manager_rule" model="ir.rule"> 
    <field name="name">Purchase Request Manager</field> 
    <field name="model_id" ref="model_purchase_request"/> 
    <field name="groups" eval="[(6,0, [ref('group_purchase_request_manager')])]"/> 
    <field name="perm_read" eval="False"/> 
    <field name="perm_write" eval="True"/> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="domain_force">[('assigned_to','=',user.id),('state','in',('to_approve_first', 'create_order'))] 

<record id="manager_manager_rule" model="ir.rule"> 
    <field name="name">Manager manager</field> 
    <field name="model_id" ref="model_purchase_request"/> 
    <field name="groups" eval="[(6,0, [ref('group_purchase_request_manager')])]"/> 
    <field name="perm_read" eval="True"/> 
    <field name="perm_write" eval="False"/> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="domain_force">[('assigned_to','=',user.id)]</field> 
</record>