Accept Merge Request #746: (feature/权限修复 -> develop)

Merge Request: 权限修复

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/746?initial=true
This commit is contained in:
杨金灵
2024-01-03 11:52:12 +08:00
committed by Coding
7 changed files with 48 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_quality_point_group_quality,quality_point_group_quality,quality.model_quality_point,sf_base.group_quality,1,1,1,0
access_quality_point_group_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,0,0
access_quality_point_group_quality_director,quality_point_group_quality_director,quality.model_quality_point,sf_base.group_quality_director,1,1,1,0
access_quality_point_group_plan_dispatch,quality_point_group_plan_dispatch,quality.model_quality_point,sf_base.group_plan_dispatch,1,0,0,0
access_quality_point_group_plan_director,quality_point_group_plan_director,quality.model_quality_point,sf_base.group_plan_director,1,0,0,0
access_quality_point_group_sf_equipment_user,quality_point_group_sf_equipment_user,quality.model_quality_point,sf_base.group_sf_equipment_user,1,0,0,0
@@ -30,8 +30,8 @@ access_quality_alert_group_sf_mrp_manager,quality_alert_group_sf_mrp_manager,qua
access_quality_alert_group_equipment_user,quality_alert_group_equipment_user,quality.model_quality_alert,sf_maintenance.sf_group_equipment_user,1,0,0,0
access_quality_alert_group_equipment_manager,quality_alert_group_equipment_manager,quality.model_quality_alert,sf_maintenance.sf_group_equipment_manager,1,0,0,0
access_quality_alert_team_group_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,1,1,0
access_quality_alert_team_group_quality_director,quality_alert_team_group_quality_director,quality.model_quality_alert_team,sf_base.group_quality_director,1,1,0,0
access_quality_alert_team_group_quality,quality_alert_team_group_quality,quality.model_quality_alert_team,sf_base.group_quality,1,0,0,0
access_quality_alert_team_group_quality_director,quality_alert_team_group_quality_director,quality.model_quality_alert_team,sf_base.group_quality_director,1,1,1,0
access_quality_alert_team_group_plan_dispatch,quality_alert_team_group_plan_dispatch,quality.model_quality_alert_team,sf_base.group_plan_dispatch,1,0,0,0
access_quality_alert_team_group_plan_director,quality_alert_team_group_plan_director,quality.model_quality_alert_team,sf_base.group_plan_director,1,0,0,0
access_quality_alert_team_group_sf_equipment_user,quality_alert_team_group_sf_equipment_user,quality.model_quality_alert_team,sf_base.group_sf_equipment_user,1,0,0,0
@@ -51,13 +51,13 @@ access_product_template_group_equipment_user,product_template_group_equipment_us
access_product_template_group_equipment_manager,product_template_group_equipment_manager,product.model_product_template,sf_maintenance.sf_group_equipment_manager,1,0,0,0
access_quality_alert_stage_group_quality,quality_alert_stage_group_quality,quality.model_quality_alert_stage,sf_base.group_quality,1,0,0,0
access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,0,0,0
access_quality_alert_stage_group_quality_director,quality_alert_stage_group_quality_director,quality.model_quality_alert_stage,sf_base.group_quality_director,1,1,1,0
access_quality_point_test_type_group_quality,quality_point_test_type_group_quality,quality.model_quality_point_test_type,sf_base.group_quality,1,0,0,0
access_quality_point_test_type_group_quality_director,quality_point_test_type_group_quality_director,quality.model_quality_point_test_type,sf_base.group_quality_director,1,0,0,0
access_quality_tag_group_quality,quality_tag_group_quality,quality.model_quality_tag,sf_base.group_quality,1,0,0,0
access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,0,0,0
access_quality_tag_group_quality_director,quality_tag_group_quality_director,quality.model_quality_tag,sf_base.group_quality_director,1,1,1,0
access_quality_reason_type_group_quality,quality_reason_group_quality,quality.model_quality_reason,sf_base.group_quality,1,0,0,0
access_quality_reason_type_group_quality_director,quality_reason_group_quality_director,quality.model_quality_reason,sf_base.group_quality_director,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_quality_point_group_quality quality_point_group_quality quality.model_quality_point sf_base.group_quality 1 1 1 0
3 access_quality_point_group_quality_director quality_point_group_quality_director quality.model_quality_point sf_base.group_quality_director 1 1 0 1 0
4 access_quality_point_group_plan_dispatch quality_point_group_plan_dispatch quality.model_quality_point sf_base.group_plan_dispatch 1 0 0 0
5 access_quality_point_group_plan_director quality_point_group_plan_director quality.model_quality_point sf_base.group_plan_director 1 0 0 0
6 access_quality_point_group_sf_equipment_user quality_point_group_sf_equipment_user quality.model_quality_point sf_base.group_sf_equipment_user 1 0 0 0
30 access_quality_alert_team_group_quality quality_alert_team_group_quality quality.model_quality_alert_team sf_base.group_quality 1 1 0 1 0 0
31 access_quality_alert_team_group_quality_director quality_alert_team_group_quality_director quality.model_quality_alert_team sf_base.group_quality_director 1 1 0 1 0
32 access_quality_alert_team_group_plan_dispatch quality_alert_team_group_plan_dispatch quality.model_quality_alert_team sf_base.group_plan_dispatch 1 0 0 0
33 access_quality_alert_team_group_plan_director quality_alert_team_group_plan_director quality.model_quality_alert_team sf_base.group_plan_director 1 0 0 0
34 access_quality_alert_team_group_sf_equipment_user quality_alert_team_group_sf_equipment_user quality.model_quality_alert_team sf_base.group_sf_equipment_user 1 0 0 0
35 access_quality_alert_team_group_sf_tool_user quality_alert_team_group_sf_tool_user quality.model_quality_alert_team sf_base.group_sf_tool_user 1 0 0 0
36 access_quality_alert_team_group_sf_order_user quality_alert_team_group_sf_order_user quality.model_quality_alert_team sf_base.group_sf_order_user 1 0 0 0
37 access_quality_alert_team_group_sf_mrp_manager quality_alert_team_group_sf_mrp_manager quality.model_quality_alert_team sf_base.group_sf_mrp_manager 1 0 0 0
51 access_quality_point_test_type_group_quality_director quality_point_test_type_group_quality_director quality.model_quality_point_test_type sf_base.group_quality_director 1 0 0 0
52 access_quality_tag_group_quality quality_tag_group_quality quality.model_quality_tag sf_base.group_quality 1 0 0 0
53 access_quality_tag_group_quality_director quality_tag_group_quality_director quality.model_quality_tag sf_base.group_quality_director 1 0 1 0 1 0
54 access_quality_reason_type_group_quality quality_reason_group_quality quality.model_quality_reason sf_base.group_quality 1 0 0 0
55 access_quality_reason_type_group_quality_director quality_reason_group_quality_director quality.model_quality_reason sf_base.group_quality_director 1 0 0 0
56
57
58
59
60
61
62
63

View File

@@ -86,6 +86,7 @@ class ResaleOrderLine(models.Model):
_inherit = 'sale.order.line'
model_glb_file = fields.Binary('模型的glb文件')
check_status = fields.Selection(related='order_id.check_status')
class RePurchaseOrder(models.Model):
@@ -144,17 +145,31 @@ class ResPartnerToSale(models.Model):
else:
domain = [('id', '=', False)]
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
elif self._context.get('is_supplier'):
if self.env.user.has_group('sf_base.group_purchase_director'):
domain = [('supplier_rank', '>', 0)]
elif self.env.user.has_group('sf_base.group_purchase'):
customer = self.env['res.partner'].search(
[('supplier_rank', '>', 0), ('user_id', '=', self.env.user.id)])
if customer:
ids = [t.id for t in customer]
domain = [('id', 'in', ids)]
else:
domain = [('id', '=', False)]
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
return super()._name_search(name, args, operator, limit, name_get_uid)
@api.onchange('user_id')
def _get_salesman(self):
if self.customer_rank > 0:
self.user_id = self.env.user.id
if self.env.user.has_group('sf_base.group_sale_salemanager'):
self.user_id = self.env.user.id
@api.onchange('purchase_user_id')
def _get_purchaseman(self):
if self.supplier_rank > 0:
self.purchase_user_id = self.env.user.id
if self.env.user.has_group('sf_base.group_purchase'):
self.purchase_user_id = self.env.user.id
class ResUserToSale(models.Model):
@@ -166,7 +181,10 @@ class ResUserToSale(models.Model):
if self.env.user.has_group('sf_base.group_sale_director'):
domain = []
elif self.env.user.has_group('sf_base.group_sale_salemanager'):
domain = [('id', '=', self.env.user.id)]
if self.id != self.env.user.id:
domain = [('id', '=', self.id)]
else:
domain = [('id', '=', self.env.user.id)]
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
elif self._context.get('supplier_rank'):
if self.env.user.has_group('sf_base.group_purchase_director'):

View File

@@ -32,7 +32,7 @@
<record model="ir.rule" id="sale_customer_rule_my">
<field name="name">销售经理查看自己的客户</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="domain_force">[('user_id','=',user.id),('customer_rank','>',0)]
<field name="domain_force">[('user_id', '=', user.id),('customer_rank', '>', 0)]
</field>
<field name="groups" eval="[(4, ref('sf_base.group_sale_salemanager'))]"/>
<field name="perm_read" eval="1"/>
@@ -64,8 +64,9 @@
<record model="ir.rule" id="inventory_purchase_order_rule_director">
<field name="name">采购总监查看所有的订单</field>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field name="domain_force">[(1,'=',1),('check_status','!=', False]</field>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4, ref('sf_base.group_purchase_director'))]"/>
<field name="perm_create" eval="1"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
</record>

View File

@@ -29,6 +29,8 @@ access_mrp_bom_group_sale_salemanager,mrp_bom_group_sale_salemanager,mrp.model_m
access_mrp_bom_group_sale_director,mrp_bom_group_sale_director,mrp.model_mrp_bom,sf_base.group_sale_director,1,0,0,0
access_mrp_bom_group_purchase,mrp_bom_group_purchase,mrp.model_mrp_bom,sf_base.group_purchase,1,0,0,0
access_mrp_bom_group_purchase_director,mrp_bom_group_purchase_director,mrp.model_mrp_bom,sf_base.group_purchase_director,1,0,0,0
access_mrp_bom_group_quality,mrp_bom_group_quality,mrp.model_mrp_bom,sf_base.group_quality,1,0,0,0
access_mrp_bom_group_quality_director,mrp_bom_group_quality_director,mrp.model_mrp_bom,sf_base.group_quality_director,1,0,0,0
access_stock_move_group_sale_salemanager,stock_move_group_sale_salemanager,stock.model_stock_move,sf_base.group_sale_salemanager,1,0,0,0
access_stock_move_group_sale_director,stock_move_group_sale_director,stock.model_stock_move,sf_base.group_sale_director,1,0,0,0
access_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,0,0,0
@@ -67,3 +69,8 @@ access_purchase_order_wizard_group_purchase,purchase_order_wizard_group_purchase
access_purchase_order_wizard_group_purchase_director,purchase_order_wizard_group_purchase_director,model_purchase_order_wizard,sf_base.group_purchase_director,1,1,1,0
access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team.model_crm_tag,sf_base.group_sale_salemanager,1,0,0,0
access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0
access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,1,1,0
access_res_partner_group_purchase_director,res_partner_group_purchase_director,base.model_res_partner,sf_base.group_purchase_director,1,1,1,0
access_sale_advance_payment_inv_group_sale_salemanager,sale_advance_payment_inv_group_sale_salemanager,sale.model_sale_advance_payment_inv,sf_base.group_sale_salemanager,1,1,1,0
access_sale_advance_payment_inv_group_sale_director,sale_advance_payment_inv_group_sale_director,sale.model_sale_advance_payment_inv,sf_base.group_sale_director,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
29 access_mrp_bom_group_sale_director mrp_bom_group_sale_director mrp.model_mrp_bom sf_base.group_sale_director 1 0 0 0
30 access_mrp_bom_group_purchase mrp_bom_group_purchase mrp.model_mrp_bom sf_base.group_purchase 1 0 0 0
31 access_mrp_bom_group_purchase_director mrp_bom_group_purchase_director mrp.model_mrp_bom sf_base.group_purchase_director 1 0 0 0
32 access_mrp_bom_group_quality mrp_bom_group_quality mrp.model_mrp_bom sf_base.group_quality 1 0 0 0
33 access_mrp_bom_group_quality_director mrp_bom_group_quality_director mrp.model_mrp_bom sf_base.group_quality_director 1 0 0 0
34 access_stock_move_group_sale_salemanager stock_move_group_sale_salemanager stock.model_stock_move sf_base.group_sale_salemanager 1 0 0 0
35 access_stock_move_group_sale_director stock_move_group_sale_director stock.model_stock_move sf_base.group_sale_director 1 0 0 0
36 access_stock_move_group_purchase stock_move_group_purchase stock.model_stock_move sf_base.group_purchase 1 0 0 0
69 access_purchase_order_wizard_group_purchase_director purchase_order_wizard_group_purchase_director model_purchase_order_wizard sf_base.group_purchase_director 1 1 1 0
70 access_crm_tag_group_sale_salemanager crm_tag_group_sale_salemanager sales_team.model_crm_tag sf_base.group_sale_salemanager 1 0 0 0
71 access_crm_tag_group_sale_director crm_tag_group_sale_director sales_team.model_crm_tag sf_base.group_sale_director 1 1 1 0
72 access_res_partner_group_purchase res_partner_group_purchase base.model_res_partner sf_base.group_purchase 1 1 1 0
73 access_res_partner_group_purchase_director res_partner_group_purchase_director base.model_res_partner sf_base.group_purchase_director 1 1 1 0
74 access_sale_advance_payment_inv_group_sale_salemanager sale_advance_payment_inv_group_sale_salemanager sale.model_sale_advance_payment_inv sf_base.group_sale_salemanager 1 1 1 0
75 access_sale_advance_payment_inv_group_sale_director sale_advance_payment_inv_group_sale_director sale.model_sale_advance_payment_inv sf_base.group_sale_director 1 1 1 0
76

View File

@@ -6,6 +6,9 @@
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="replace">
<field name="partner_id" widget="res_partner_many2one" context="{'is_supplier': True }"/>
</field>
<field name="currency_id" position="after">
<field name="check_status" invisible="1"/>
<!-- <field name="state"/>-->

View File

@@ -6,6 +6,9 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<form position="attributes">
<attribute name="delete">false</attribute>
</form>
<field name="vat" position="after">
<field name="customer_rank" invisible="1"/>
<field name="supplier_rank" invisible="1"/>
@@ -42,7 +45,7 @@
</field>
<xpath expr="//group[@name='sale']/field[@name='user_id']" position="replace">
<field name="user_id" widget="many2one_avatar_user" context="{'is_sale': True }"
attrs="{'required' : [('customer_rank','>', 0)],'readonly': [('supplier_rank','>', 0)]}"/>
attrs="{'required' : [('customer_rank','>', 0)]}"/>
</xpath>
<field name="category_id" position="attributes">
<attribute name="required">1</attribute>
@@ -69,6 +72,9 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="delete">false</attribute>
</tree>
<field name="function" position="before">
<field name="customer_rank" invisible="1"/>
<field name="supplier_rank" invisible="1"/>

View File

@@ -36,8 +36,7 @@
attrs="{'invisible': ['|','&amp;',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
</xpath>
<xpath expr="//form/header/button[@name='action_cancel']" position="attributes">
<attribute name="attrs">{'invisible': ['|',('check_status', '!=', 'approved'),('schedule_status',
'not in', ['to schedule',False])]}
<attribute name="attrs">{'invisible': [('check_status', '=', False)]}
</attribute>
</xpath>
<xpath expr="//form/header/button[@name='action_draft']" position="attributes">
@@ -63,7 +62,7 @@
</field>
<xpath expr="//field[@name='order_line']/tree/field[@name='name']" position="before">
<field name="model_glb_file" widget="Viewer3D" optional="show"
string="模型文件"/>
string="模型文件" attrs="{'readonly': [('state', 'in', ['draft'])]}"/>
</xpath>
<xpath expr="//field[@name='order_line']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>