Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
2984 Zobrazení

Hello,

I am using Odoo 18 Community Edition and I want to restrict certain users from viewing the cost price and sale price in the Inventory and Manufacturing modules. Is there a way to achieve this using access rights or record rules?


Thanks in advance

Avatar
Zrušit
Autor

Thanks for your answer! I am new to Odoo. Could you please provide a step-by-step guide on how to implement this?

You can search for more detailed answers, but you need to understand how Odoo works and that is beyond the scope of a Help question and answer (in my opinion). I did write one more detailed answer a while back (https://www.odoo.com/forum/help-1/re-how-to-disable-update-cost-on-sales-user-176326/#answer-176326) and there is some useful information on my website http://odootricks.tips/

Nejlepší odpověď

Yes, you can limit access based on User Access Groups, something like this (in an Extension View):

<data>
  <xpath expr="//field[@name='order_line']" position="attributes">
    <attribute name="groups">base.group_erp_manager</attribute>
  </xpath>

</data>
Avatar
Zrušit
Autor Nejlepší odpověď

Thanks guys for the help, I found a free app to hide cost price by Cybrosys Techno Solutions
for the sale price I have tried to do the same thing but it did not work here is the code and the error I am getting if someone can help:

/security/hide_sell_price_groups.xml

<?xml version="1.0" encoding="utf-8"?>

<odoo>

    <data>

        <!-- Access to the sell price -->

        <record id="groups_view_sell_price" model="res.groups">

            <field name="name">View Sell Price</field>

            <field name="users" eval="[Command.link(ref('base.user_root')), Command.link(ref('base.user_admin'))]"/>

        </record>

    </data>

</odoo>

/views/product_product_views.xml

<?xml version="1.0" encoding="utf-8"?>

<odoo>

    <!-- Product Variant Form View -->

    <record id="product_normal_form_view" model="ir.ui.view">

        <field name="name">product.product.view.form.inherited.hide.sell.price</field>

        <field name="model">product.product</field>

        <field name="inherit_id" ref="product.product_normal_form_view"/>

        <field name="arch" type="xml">

            <field name="lst_price" position="attributes">

                <attribute name="groups">hide_sell_price.groups_view_sell_price</attribute>

            </field>

        </field>

    </record>

    <!-- Product Variant Tree View -->

    <record id="product_product_tree_view" model="ir.ui.view">

        <field name="name">product.product.view.tree.inherited.hide.sell.price</field>

        <field name="model">product.product</field>

        <field name="inherit_id" ref="product.product_product_tree_view"/>

        <field name="arch" type="xml">

            <field name="lst_price" position="attributes">

                <attribute name="groups">hide_sell_price.groups_view_sell_price</attribute>

            </field>

        </field>

    </record>

    <record id="product_variant_easy_edit_view" model="ir.ui.view">

        <field name="name">product.product.view.tree.inherited.hide.sell.price</field>

        <field name="model">product.product</field>

        <field name="inherit_id" ref="product.product_variant_easy_edit_view"/>

        <field name="arch" type="xml">

            <field name="lst_price" position="attributes">

                <attribute name="groups">hide_sell_price.groups_view_sell_price</attribute>

            </field>

        </field>

    </record>

</odoo>

/views/product_template_views.xml

<?xml version="1.0" encoding="utf-8"?>

<odoo>

    <!-- Product Template Form View -->

    <record id="product_template_form_view" model="ir.ui.view">

        <field name="name">product.template.view.form.inherit.hide.sell.price</field>

        <field name="model">product.template</field>

        <field name="inherit_id" ref="product.product_template_form_view"/>

        <field name="arch" type="xml">

            <field name="lst_price" position="attributes">

                <attribute name="groups">hide_sell_price.groups_view_sell_price</attribute>

            </field>

        </field>

    </record>

    <!-- Product Template Tree View -->

    <record id="product_template_tree_view" model="ir.ui.view">

        <field name="name">product.template.view.tree.inherit.hide.sell.price</field>

        <field name="model">product.template</field>

        <field name="inherit_id" ref="product.product_template_tree_view"/>

        <field name="arch" type="xml">

            <field name="lst_price" position="attributes">

                <attribute name="groups">hide_sell_price.groups_view_sell_price</attribute>

            </field>

        </field>

    </record>

</odoo>

and here is the error

odoo.tools.convert.ParseError: while parsing /home/odoo/odoo18/custom_addons/hide_sell_price/views/product_template_views.xml:4

Error during parsing or validation of the view:

The element <field name="lst_price"> cannot be located in the parent view


{

  "file": "/home/odoo/odoo18/custom_addons/hide_sell_price/views/product_template_views.xml",

  "line": 1,

  "name": "product.template.view.form.inherit.hide.sell.price",

  "view": ir.ui.view(3570,),

  "view.model": "product.template",

  "view.parent": ir.ui.view(470,),

  "xmlid": "product_template_form_view"

}

Avatar
Zrušit
Nejlepší odpověď

If you have the Studio app installed (extra cost): 

Open the view with fields you want to restrict access.  Open studio.  There click on the field.  On the left side down, you will see 'Limit Visibility to fields'.  Careful, you can mess up.  I recommend you know the basics on managing access rights.

The result is a code like described by Chris.

The studio app then adds an extension view that is inherited in the basic view.   You avoid modifying Odoo standard code.

Studio app is excellent for those that do not know coding. But comes with a warning: You can mess up, and this might not work after updated version.

Avatar
Zrušit

Thanks Lars - that's how I created the Extension View in my answer, but the question was about Community Edition so that's not an option :-)

Related Posts Odpovědi Zobrazení Aktivita
2
úno 25
1563
0
lis 24
1326
1
říj 24
1535
3
srp 25
6923
1
bře 24
1338