diff --git a/addons/account/data/payment_receipt_data.xml b/addons/account/data/payment_receipt_data.xml
index 7a72e51099334497f6feae1477f1095acfd83569..6159af2e6c63625fda3d510d88e7eb384a902bba 100644
--- a/addons/account/data/payment_receipt_data.xml
+++ b/addons/account/data/payment_receipt_data.xml
@@ -33,6 +33,7 @@
         </record>
 
         <act_window name="Send receipt by email"
+            groups="account.group_account_invoice"
             res_model="mail.compose.message"
             binding_model="account.payment"
             view_mode="form"
diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index 166f2d5dc9b68bb217f3e6a587794f99a5bd3bf5..197cababb0d0fb12533d8d61ef81c4cafd06f3d6 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -221,11 +221,11 @@ class AccountMove(models.Model):
         help='International Commercial Terms are a series of predefined commercial terms used in international transactions.')
 
     # ==== Payment widget fields ====
-    invoice_outstanding_credits_debits_widget = fields.Text(groups="account.group_account_invoice",
+    invoice_outstanding_credits_debits_widget = fields.Text(groups="account.group_account_invoice,account.group_account_readonly",
         compute='_compute_payments_widget_to_reconcile_info')
-    invoice_payments_widget = fields.Text(groups="account.group_account_invoice",
+    invoice_payments_widget = fields.Text(groups="account.group_account_invoice,account.group_account_readonly",
         compute='_compute_payments_widget_reconciled_info')
-    invoice_has_outstanding = fields.Boolean(groups="account.group_account_invoice",
+    invoice_has_outstanding = fields.Boolean(groups="account.group_account_invoice,account.group_account_readonly",
         compute='_compute_payments_widget_to_reconcile_info')
 
     # ==== Vendor bill fields ====
@@ -253,7 +253,7 @@ class AccountMove(models.Model):
         help="Technical field used to have a dynamic domain on journal / taxes in the form view.")
     bank_partner_id = fields.Many2one('res.partner', help='Technical field to get the domain on the bank', compute='_compute_bank_partner_id')
     invoice_has_matching_suspense_amount = fields.Boolean(compute='_compute_has_matching_suspense_amount',
-        groups='account.group_account_invoice',
+        groups='account.group_account_invoice,account.group_account_readonly',
         help="Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.")
     tax_lock_date_message = fields.Char(
         compute='_compute_tax_lock_date_message',
diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py
index 99678c3aee4fa9e4be977c608e5bb9dd3eea4aa2..e9fbcfc910a7c1718e7b269bc4049ab8ab70d7d8 100644
--- a/addons/account/models/partner.py
+++ b/addons/account/models/partner.py
@@ -387,7 +387,7 @@ class ResPartner(models.Model):
         help="Total amount you have to pay to this vendor.")
     debit_limit = fields.Monetary('Payable Limit')
     total_invoiced = fields.Monetary(compute='_invoice_total', string="Total Invoiced",
-        groups='account.group_account_invoice')
+        groups='account.group_account_invoice,account.group_account_readonly')
     currency_id = fields.Many2one('res.currency', compute='_get_company_currency', readonly=True,
         string="Currency", help='Utility field to express amount currency')
     journal_item_count = fields.Integer(compute='_compute_journal_item_count', string="Journal Items", type="integer")
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index 986c3563b212e8adf9b19509ed3d61e3fdbe47bf..3fbc524f785c4bac00acce598e5921c6b4eac6d7 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -7,12 +7,6 @@
         <field name="sequence">7</field>
     </record>
 
-    <record id="group_account_invoice" model="res.groups">
-        <field name="name">Billing</field>
-        <field name="category_id" ref="base.module_category_accounting_accounting"/>
-        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
-    </record>
-
     <record id="group_show_line_subtotals_tax_excluded" model="res.groups">
         <field name="name">Tax display B2B</field>
         <field name="comment">Show line subtotals without taxes (B2B)</field>
@@ -25,9 +19,22 @@
         <field name="category_id" ref="base.module_category_hidden"/>
     </record>
 
+    <record id="group_account_readonly" model="res.groups">
+        <field name="name">Show Accounting Features - Readonly</field>
+        <field name="category_id" ref="base.module_category_accounting_accounting"/>
+        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
+    </record>
+
+    <record id="group_account_invoice" model="res.groups">
+        <field name="name">Billing</field>
+        <field name="category_id" ref="base.module_category_accounting_accounting"/>
+        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
+    </record>
+
     <record id="group_account_user" model="res.groups">
         <field name="name">Show Full Accounting Features</field>
         <field name="category_id" ref="base.module_category_hidden"/>
+        <field name="implied_ids" eval="[(4, ref('group_account_invoice')), (4, ref('group_account_readonly'))]"/>
     </record>
 
     <record id="group_account_manager" model="res.groups">
@@ -210,5 +217,43 @@
         <field name="domain_force">[('move_id.type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('move_id.message_partner_ids','child_of',[user.commercial_partner_id.id])]</field>
         <field name="groups" eval="[(4, ref('base.group_portal'))]"/>
     </record>
+
+    <!-- Some modules (i.e. sale) restrict the access for some users
+    We want the readonly group to still have the read access on all moves.-->
+    <record id="account_move_rule_group_readonly" model="ir.rule">
+        <field name="name">Readonly Move</field>
+        <field name="model_id" ref="model_account_move"/>
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/>
+        <field name="perm_write" eval="False"/>
+        <field name="perm_create" eval="False"/>
+        <field name="perm_unlink" eval="False"/>
+    </record>
+
+    <record id="account_move_line_rule_group_readonly" model="ir.rule">
+        <field name="name">Readonly Move Line</field>
+        <field name="model_id" ref="model_account_move_line"/>
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/>
+        <field name="perm_write" eval="False"/>
+        <field name="perm_create" eval="False"/>
+        <field name="perm_unlink" eval="False"/>
+    </record>
+
+    <!-- Some modules (i.e. sale) restrict the access for some users
+    We want the invoice group to still have all access on all moves.-->
+    <record id="account_move_rule_group_invoice" model="ir.rule">
+        <field name="name">Readonly Move</field>
+        <field name="model_id" ref="model_account_move"/>
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/>
+    </record>
+
+    <record id="account_move_line_rule_group_invoice" model="ir.rule">
+        <field name="name">Readonly Move Line</field>
+        <field name="model_id" ref="model_account_move_line"/>
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/>
+    </record>
 </data>
 </odoo>
diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv
index 8d89ca0ec9096de6bf6c9df8c627cc9321f60ef0..bc5f6536810691aa74c370bd8922e925960e2969 100644
--- a/addons/account/security/ir.model.access.csv
+++ b/addons/account/security/ir.model.access.csv
@@ -1,4 +1,5 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_account_cash_rounding_readonly,account.cash.rounding,model_account_cash_rounding,account.group_account_readonly,1,0,0,0
 access_account_cash_rounding_uinvoice,account.cash.rounding,model_account_cash_rounding,account.group_account_invoice,1,1,1,1
 access_res_partner_group_account_manager,res_partner group_account_manager,model_res_partner,account.group_account_manager,1,0,0,0
 
@@ -17,14 +18,14 @@ access_account_group_template,account.group.template,model_account_group_templat
 access_res_currency_account_manager,res.currency account manager,base.model_res_currency,group_account_manager,1,1,1,1
 access_res_currency_rate_account_manager,res.currency.rate account manager,base.model_res_currency_rate,group_account_manager,1,1,1,1
 
-access_account_invoice_report_user,account.invoice.report_user,model_account_invoice_report,account.group_account_user,1,0,0,0
+access_account_invoice_report_readonly,account.invoice.report_user,model_account_invoice_report,account.group_account_readonly,1,0,0,0
 access_account_invoice_report_billing,account.invoice.report_billing,model_account_invoice_report,account.group_account_invoice,1,0,0,0
 access_account_invoice_report,account.invoice.report,model_account_invoice_report,account.group_account_manager,1,1,1,1
 
 access_account_incoterms_all,account.incoterms all,model_account_incoterms,,1,0,0,0
 access_account_incoterms_manager,account.incoterms manager,model_account_incoterms,account.group_account_manager,1,1,1,1
 
-access_account_fiscal_year_user,account.fiscal.year.user,model_account_fiscal_year,account.group_account_user,1,0,0,0
+access_account_fiscal_year_readonly,account.fiscal.year.user,model_account_fiscal_year,account.group_account_readonly,1,0,0,0
 access_account_fiscal_year_manager,account.fiscal.year.manager,model_account_fiscal_year,account.group_account_manager,1,1,1,1
 
 access_account_fiscal_position_product_manager,account.fiscal.position account.manager,model_account_fiscal_position,account.group_account_manager,1,1,1,1
@@ -34,77 +35,91 @@ access_account_fiscal_position,account.fiscal.position all,model_account_fiscal_
 access_account_fiscal_position_tax,account.fiscal.position.tax all,model_account_fiscal_position_tax,base.group_user,1,0,0,0
 access_account_fiscal_position_account,account.fiscal.position all,model_account_fiscal_position_account,base.group_user,1,0,0,0
 
-access_product_product_account_user,product.product.account.user,product.model_product_product,group_account_user,1,0,0,0
+access_product_product_account_user,product.product.account.user,product.model_product_product,group_account_readonly,1,0,0,0
 access_product_product_account_manager,product.product.account.manager,product.model_product_product,account.group_account_manager,1,1,1,1
 
 access_account_cashbox,account.bank.statement.cashbox,model_account_bank_statement_cashbox,account.group_account_user,1,1,1,1
 access_account_cashbox_line,account.bank.statement.cashbox.line,model_account_cashbox_line,account.group_account_user,1,1,1,1
+access_account_bank_statement_group_readonly,account.bank.statement.group.invoice,model_account_bank_statement,account.group_account_readonly,1,0,0,0
 access_account_bank_statement_group_invoice,account.bank.statement.group.invoice,model_account_bank_statement,account.group_account_invoice,1,0,0,0
+access_account_bank_statement_line_group_readonly,account.bank.statement.line.group.invoice,model_account_bank_statement_line,account.group_account_readonly,1,0,0,0
 access_account_bank_statement_line_group_invoice,account.bank.statement.line.group.invoice,model_account_bank_statement_line,account.group_account_invoice,1,0,0,0
 access_account_bank_statement,account.bank.statement,model_account_bank_statement,account.group_account_user,1,1,1,1
 access_account_bank_statement_line,account.bank.statement.line,model_account_bank_statement_line,account.group_account_user,1,1,1,1
 
 access_account_move_line_manager,account.move.line manager,model_account_move_line,account.group_account_manager,1,0,0,0
 access_account_move_manager,account.move manager,model_account_move,account.group_account_manager,1,0,0,0
+access_account_move_readonly,account.move readonly,model_account_move,account.group_account_readonly,1,0,0,0
 access_account_move_uinvoice,account.move,model_account_move,account.group_account_invoice,1,1,1,1
+access_account_move_line_readonly,account.move.line readonly,model_account_move_line,account.group_account_readonly,1,0,0,0
 access_account_move_line_uinvoice,account.move.line invoice,model_account_move_line,account.group_account_invoice,1,1,1,1
 access_account_invoice_portal,account.move.portal,account.model_account_move,base.group_portal,1,0,0,0
 access_account_invoice_line_portal,account.move.line.portal,account.model_account_move_line,base.group_portal,1,0,0,0
 
 access_account_analytic_line_manager,account.analytic.line manager,model_account_analytic_line,account.group_account_manager,1,0,0,0
 access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,base.group_user,1,0,0,0
+access_account_analytic_line_readonly,account.analytic.line invoice,model_account_analytic_line,account.group_account_readonly,1,0,0,0
 access_account_analytic_line_invoice,account.analytic.line invoice,model_account_analytic_line,account.group_account_invoice,1,1,1,1
 access_account_analytic_accountant,account.analytic.account accountant,analytic.model_account_analytic_account,account.group_account_user,1,1,1,1
 
-access_account_journal_user,account.journal,model_account_journal,account.group_account_user,1,0,0,0
+access_account_journal_readonly,account.journal,model_account_journal,account.group_account_readonly,1,0,0,0
 access_account_journal_manager,account.journal,model_account_journal,account.group_account_manager,1,1,1,1
 access_account_journal_invoice,account.journal invoice,model_account_journal,account.group_account_invoice,1,0,0,0
 access_account_journal_group_all,account.journal.group all,model_account_journal_group,,1,0,0,0
 access_account_journal_group_manager,account.journal.group manager,model_account_journal_group,account.group_account_manager,1,1,1,1
 
 access_account_group_manager,account.group,model_account_group,account.group_account_manager,1,1,1,1
-access_account_group,account.group,model_account_group,account.group_account_user,1,0,0,0
+access_account_group,account.group,model_account_group,account.group_account_readonly,1,0,0,0
 access_account_root_manager,account.root,model_account_root,account.group_account_manager,1,0,0,0
-access_account_root,account.root,model_account_root,account.group_account_user,1,0,0,0
+access_account_root,account.root,model_account_root,account.group_account_readonly,1,0,0,0
 access_account_account_manager,account.account,model_account_account,account.group_account_manager,1,1,1,1
-access_account_account,account.account,model_account_account,account.group_account_user,1,0,0,0
+access_account_account,account.account,model_account_account,account.group_account_readonly,1,0,0,0
 access_account_account_user,account.account user,model_account_account,base.group_user,1,0,0,0
 access_account_account_partner_manager,account.account partner manager,model_account_account,base.group_partner_manager,1,0,0,0
+access_account_account_readonly,account.account invoice,model_account_account,account.group_account_readonly,1,0,0,0
 access_account_account_invoice,account.account invoice,model_account_account,account.group_account_invoice,1,0,0,0
 access_account_account_type_manager,account.account.type,model_account_account_type,account.group_account_manager,1,1,1,1
-access_account_account_type,account.account.type,model_account_account_type,account.group_account_user,1,0,0,0
+access_account_account_type_readonly,account.account.type readonly,model_account_account_type,account.group_account_readonly,1,0,0,0
 access_account_account_type_invoice,account.account.type invoice,model_account_account_type,account.group_account_invoice,1,0,0,0
 
 access_account_tax_internal_user,account.tax internal user,model_account_tax,base.group_user,1,0,0,0
-access_account_tax,account.tax,model_account_tax,account.group_account_invoice,1,0,0,0
+access_account_tax_readonly,account.tax,model_account_tax,account.group_account_readonly,1,0,0,0
+access_account_tax_invoice,account.tax,model_account_tax,account.group_account_invoice,1,0,0,0
 access_account_tax_manager,account.tax,model_account_tax,account.group_account_manager,1,1,1,1
 access_account_account_tax,account.account.tag,model_account_account_tag,account.group_account_user,1,1,1,1
+access_account_account_tax_readonly,account.account.tag,model_account_account_tag,account.group_account_readonly,1,0,0,0
 access_account_account_tax_user,account.account.tag,model_account_account_tag,account.group_account_invoice,1,0,0,0
 access_account_tax_repartition_line_user,account.tax repartition.line.user,model_account_tax_repartition_line,base.group_user,1,0,0,0
+access_account_tax_repartition_line_readonly,account.tax repartition.line.invoice,model_account_tax_repartition_line,account.group_account_readonly,1,0,0,0
 access_account_tax_repartition_line_invoice,account.tax repartition.line.invoice,model_account_tax_repartition_line,account.group_account_invoice,1,0,0,0
 access_account_tax_repartition_line_manager,account.tax repartition.line.manager,model_account_tax_repartition_line,account.group_account_manager,1,1,1,1
-access_account_tax_report_line_invoice,account.tax.report.line.invoice,model_account_tax_report_line,account.group_account_invoice,1,0,0,0
+access_account_tax_report_line_readonly,account.tax.report.line.invoice,model_account_tax_report_line,account.group_account_readonly,1,0,0,0
 access_account_tax_report_line_ac_user,account.tax.report.line.ac.user,model_account_tax_report_line,account.group_account_manager,1,1,1,1
-access_account_tax_report_invoice,account.tax.report.invoice,model_account_tax_report,account.group_account_invoice,1,0,0,0
+access_account_tax_report_invoice,account.tax.report.invoice,model_account_tax_report,account.group_account_readonly,1,0,0,0
 access_account_tax_report_ac_user,account.tax.report.ac.user,model_account_tax_report,account.group_account_manager,1,1,1,1
 access_account_tax_group_internal_user,account.tax.group internal user,model_account_tax_group,base.group_user,1,0,0,0
+access_account_tax_group_readonly,account.tax.group,model_account_tax_group,account.group_account_readonly,1,0,0,0
 access_account_tax_group,account.tax.group,model_account_tax_group,account.group_account_invoice,1,0,0,0
 access_account_tax_group_manager,account.tax.group,model_account_tax_group,account.group_account_manager,1,1,1,1
 
+access_account_reconcile_model_readonly,account.reconcile.model.readonly,model_account_reconcile_model,account.group_account_readonly,1,0,0,0
 access_account_reconcile_model_billing,account.reconcile.model.billing,model_account_reconcile_model,account.group_account_invoice,1,0,1,0
 access_account_reconcile_model,account.reconcile.model,model_account_reconcile_model,account.group_account_user,1,1,1,1
+access_account_reconcile_model_line_readonly,account.reconcile.model.line.readonly,model_account_reconcile_model_line,account.group_account_readonly,1,0,0,0
 access_account_reconcile_model_line_billing,account.reconcile.model.line.billing,model_account_reconcile_model_line,account.group_account_invoice,1,0,1,0
 access_account_reconcile_model_line,account.reconcile.model.line,model_account_reconcile_model_line,account.group_account_user,1,1,1,1
+access_account_partial_reconcile_readonly,account.partial.reconcile.readonly,model_account_partial_reconcile,account.group_account_readonly,1,0,0,0
 access_account_partial_reconcile_group_invoice,account.partial.reconcile.group.invoice,model_account_partial_reconcile,account.group_account_invoice,1,1,1,0
 access_account_partial_reconcile,account.partial.reconcile,model_account_partial_reconcile,account.group_account_user,1,1,1,1
+access_account_full_reconcile_group_readonly,account.full.reconcile.group.invoice,model_account_full_reconcile,account.group_account_readonly,1,0,0,0
 access_account_full_reconcile_group_invoice,account.full.reconcile.group.invoice,model_account_full_reconcile,account.group_account_invoice,1,1,1,0
 access_account_full_reconcile,account.full.reconcile,model_account_full_reconcile,account.group_account_user,1,1,1,1
 
 access_account_payment_term_partner_manager,account.payment.term partner manager,model_account_payment_term,base.group_user,1,0,0,0
-access_account_payment_term,account.payment.term,model_account_payment_term,account.group_account_user,1,0,0,0
 access_account_payment_term_manager,account.payment.term,model_account_payment_term,account.group_account_manager,1,1,1,1
 access_account_payment_term_line_partner_manager,account.payment.term.line partner manager,model_account_payment_term_line,base.group_user,1,0,0,0
-access_account_payment_term_line,account.payment.term.line,model_account_payment_term_line,account.group_account_user,1,0,0,0
 access_account_payment_term_line_manager,account.payment.term.line,model_account_payment_term_line,account.group_account_manager,1,1,1,1
+access_account_payment_method_readonly,account.payment.method,model_account_payment_method,account.group_account_readonly,1,0,0,0
 access_account_payment_method,account.payment.method,model_account_payment_method,account.group_account_invoice,1,1,1,1
+access_account_payment_readonly,account.payment,model_account_payment,account.group_account_readonly,1,0,0,0
 access_account_payment,account.payment,model_account_payment,account.group_account_invoice,1,1,1,1
diff --git a/addons/account/static/src/xml/account_payment.xml b/addons/account/static/src/xml/account_payment.xml
index 0658aaac5b932b760384054857daa19319dadeb3..7f6cbc7b8d39a8916bcfcfcd5855822c4c38a57b 100644
--- a/addons/account/static/src/xml/account_payment.xml
+++ b/addons/account/static/src/xml/account_payment.xml
@@ -74,7 +74,7 @@
                 </tr>
             </table>
         </div>
-        <button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-payment-id="payment_id" style="margin-top:5px; margin-bottom:5px;">Unreconcile</button>
+        <button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-payment-id="payment_id" style="margin-top:5px; margin-bottom:5px;" groups="account.group_account_invoice">Unreconcile</button>
         <button class="btn btn-sm btn-secondary js_open_payment float-right" t-att-payment-id="account_payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button>
     </t>
 
diff --git a/addons/account/tests/common.py b/addons/account/tests/common.py
index 108736d492fbd62844acf8b99cd639fd430c0226..9f585044054c743bcabc32472f0b8a83d2a86e6b 100644
--- a/addons/account/tests/common.py
+++ b/addons/account/tests/common.py
@@ -448,8 +448,8 @@ class AccountTestNoChartCommonMultiCompany(AccountTestNoChartCommon):
     """ Some tests required to be executed at module installation, and not 'post install', like moslty
         of accounting tests, since a chart of account is required
         This test setup class provides data for test suite to make business flow working without a chart
-        of account installed in a multi-company environment. 
-        The class provide some helpers methods to create particular document types. Each test suite extending 
+        of account installed in a multi-company environment.
+        The class provide some helpers methods to create particular document types. Each test suite extending
         this method can call thoses method to set up their testing environment in their own `setUpClass` method.
     """
 
@@ -497,7 +497,7 @@ class AccountTestNoChartCommonMultiCompany(AccountTestNoChartCommon):
         super(AccountTestNoChartCommonMultiCompany, cls).setUpAdditionalAccounts()
         user_type_income = cls.env.ref('account.data_account_type_direct_costs')
         cls.account_income_company_B = cls.env['account.account'].create({
-            'code': 'NC1112', 
+            'code': 'NC1112',
             'name': 'Sale - Test Account Company B',
             'user_type_id': user_type_income.id,
             'company_id': cls.company_B.id,
diff --git a/addons/account/views/account_cash_rounding_view.xml b/addons/account/views/account_cash_rounding_view.xml
index 7309c1193f738989fa2b30f138ffbdc5461bacb7..e6bae7df5c5f5f78ce306f8f9be9600460715b90 100644
--- a/addons/account/views/account_cash_rounding_view.xml
+++ b/addons/account/views/account_cash_rounding_view.xml
@@ -26,9 +26,9 @@
                             <field name="rounding"/>
                             <field name="strategy"/>
                             <field name="profit_account_id" options="{'no_create': True}" attrs="{'invisible': [('strategy', '!=', 'add_invoice_line')], 'required': [('strategy', '=', 'add_invoice_line')]}"
-                                groups="account.group_account_invoice"/>
+                                groups="account.group_account_invoice,account.group_account_readonly"/>
                             <field name="loss_account_id" options="{'no_create': True}" attrs="{'invisible': [('strategy', '!=', 'add_invoice_line')], 'required': [('strategy', '=', 'add_invoice_line')]}"
-                                groups="account.group_account_invoice"/>
+                                groups="account.group_account_invoice,account.group_account_readonly"/>
                             <field name="rounding_method"/>
                         </group>
                     </sheet>
diff --git a/addons/account/views/account_journal_dashboard_view.xml b/addons/account/views/account_journal_dashboard_view.xml
index 7fc2b3d27af4e9614d8440326b5d0e5ea7597615..4a56c48e14100709c3025fd5ebfc1e3b03c905b2 100644
--- a/addons/account/views/account_journal_dashboard_view.xml
+++ b/addons/account/views/account_journal_dashboard_view.xml
@@ -75,7 +75,7 @@
                                 </div>
                             </div>
 
-                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new">
+                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_user">
                                 <div class="o_kanban_card_manage_title">
                                     <span role="separator">New</span>
                                 </div>
@@ -127,7 +127,7 @@
                                 </div>
                             </div>
 
-                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new">
+                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_invoice">
                                 <div class="o_kanban_card_manage_title">
                                     <span>New</span>
                                 </div>
@@ -150,8 +150,8 @@
                                     <span>Reporting</span>
                                 </div>
                                 <div>
-                                    <a t-if="journal_type == 'sale'" type="action" name="%(action_account_invoice_report_all)d" groups="account.group_account_manager">Invoices Analysis</a>
-                                    <a t-if="journal_type == 'purchase'" type="action" name="%(action_account_invoice_report_all_supp)d" groups="account.group_account_manager">Bills Analysis</a>
+                                    <a t-if="journal_type == 'sale'" type="action" name="%(action_account_invoice_report_all)d" groups="account.group_account_readonly">Invoices Analysis</a>
+                                    <a t-if="journal_type == 'purchase'" type="action" name="%(action_account_invoice_report_all_supp)d" groups="account.group_account_readonly">Bills Analysis</a>
                                 </div>
                             </div>
                         </div>
@@ -173,7 +173,7 @@
                                 </div>
                             </div>
 
-                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new">
+                             <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_user">
                                 <div class="o_kanban_card_manage_title">
                                     <span>New</span>
                                 </div>
@@ -187,7 +187,7 @@
                                     <span>Operations</span>
                                 </div>
                                 <div>
-                                    <a type="object" name="open_action_with_context" context="{'action_name': 'action_validate_account_move', 'search_default_journal': True}">Post All Entries</a>
+                                    <a type="object" name="open_action_with_context" context="{'action_name': 'action_validate_account_move', 'search_default_journal': True}"  groups="account.group_account_user">Post All Entries</a>
                                 </div>
                             </div>
                         </div>
@@ -210,7 +210,7 @@
 
                     <t t-name="JournalMiscelaneous">
                         <div class="col-5 o_kanban_primary_left">
-                            <button type="object" name="action_create_new" class="btn btn-primary">
+                            <button type="object" name="action_create_new" class="btn btn-primary" groups="account.group_account_invoice">
                                 <span>New Entry</span>
                             </button>
                         </div>
@@ -236,17 +236,17 @@
                         <div class="col-5 o_kanban_primary_left">
                             <t t-if="journal_type == 'bank'" id="journal_body_bank_cash_left">
                                 <div name="bank_journal_cta">
-                                    <button t-if="dashboard.bank_statements_source == 'undefined'" name="action_configure_bank_journal" type="object" class="btn btn-primary">Configure</button>
-                                    <div name="bank_statement_create_button" t-if="dashboard.bank_statements_source != 'online_sync'">
+                                    <button t-if="dashboard.bank_statements_source == 'undefined'" name="action_configure_bank_journal" type="object" class="btn btn-primary"  groups="account.group_account_invoice">Configure</button>
+                                    <div name="bank_statement_create_button" t-if="dashboard.bank_statements_source != 'online_sync'" groups="account.group_account_invoice">
                                         <a type="object" name="create_bank_statement" class="oe_inline">Create</a><span name="button_import_placeholder"/> Statements
                                     </div>
                                 </div>
                             </t>
                             <t t-if="dashboard.number_to_reconcile > 0">
-                                <a t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="oe_inline">New Transactions</a>
+                                <a t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="oe_inline" groups="account.group_account_invoice">New Transactions</a>
                             </t>
                             <t t-if="dashboard.number_to_reconcile == 0">
-                                <button t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="btn btn-primary">New Transactions</button>
+                                <button t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="btn btn-primary" groups="account.group_account_invoice">New Transactions</button>
                             </t>
                         </div>
                         <!-- On the right, show other common informations/actions -->
@@ -287,18 +287,18 @@
                     <t t-name="JournalBodySalePurchase" id="account.JournalBodySalePurchase">
                         <div class="col-5 o_kanban_primary_left">
                             <t t-if="journal_type == 'sale'">
-                                <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new">
+                                <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new" groups="account.group_account_invoice">
                                     <span>New Invoice</span>
                                 </button>
-                                <button class="btn btn-primary d-block o_button_upload_bill" journal_type="sale">
+                                <button class="btn btn-primary d-block o_button_upload_bill" journal_type="sale" groups="account.group_account_invoice">
                                     <span>Upload Invoices</span>
                                 </button>
                             </t>
                             <t t-if="journal_type == 'purchase'">
-                                <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new">
+                                <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new" groups="account.group_account_invoice">
                                     <span>New Bill</span>
                                 </button>
-                                <button class="btn btn-primary d-block o_button_upload_bill" journal_type="purchase">
+                                <button class="btn btn-primary d-block o_button_upload_bill" journal_type="purchase" groups="account.group_account_invoice">
                                     <span>Upload Bills</span>
                                 </button>
                             </t>
@@ -372,5 +372,5 @@
         </field>
     </record>
 
-    <menuitem id="menu_board_journal_1" name="Overview" action="open_account_journal_dashboard_kanban" parent="menu_finance" sequence="1" groups="account.group_account_user"/>
+    <menuitem id="menu_board_journal_1" name="Overview" action="open_account_journal_dashboard_kanban" parent="menu_finance" sequence="1" groups="account.group_account_readonly"/>
 </odoo>
diff --git a/addons/account/views/account_menuitem.xml b/addons/account/views/account_menuitem.xml
index 09a6dc6327520a1d04febdb9e7957172cf02e280..2c8b746ba1fcba4912854c86487303fe5ba91011 100644
--- a/addons/account/views/account_menuitem.xml
+++ b/addons/account/views/account_menuitem.xml
@@ -5,29 +5,29 @@
         <!-- Top menu item -->
         <menuitem name="Invoicing"
             id="menu_finance"
-            groups="account.group_account_user,account.group_account_manager,account.group_account_invoice"
+            groups="account.group_account_readonly,account.group_account_invoice"
             web_icon="account,static/description/icon.png"
             sequence="40"/>
 
         <menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="2"/>
         <menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="3"/>
-        <menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4" groups="account.group_account_user"/>
+        <menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4" groups="account.group_account_readonly"/>
             <!-- Adviser sub-menus -->
             <menuitem id="menu_finance_entries_accounting_miscellaneous" name="Miscellaneous" parent="account.menu_finance_entries" sequence="1"/>
             <menuitem id="menu_finance_entries_accounting_journals" name="Journals" parent="account.menu_finance_entries" sequence="2"/>
             <menuitem id="menu_finance_entries_accounting_ledgers" name="Ledgers" parent="account.menu_finance_entries" sequence="3"/>
-            <menuitem id="menu_finance_entries_management" name="Management" parent="menu_finance_entries" sequence="10" groups="account.group_account_invoice"/>
-            <menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries" sequence="11"/>
+            <menuitem id="menu_finance_entries_management" name="Management" parent="menu_finance_entries" sequence="10" groups="account.group_account_invoice,account.group_account_readonly"/>
+            <menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries" sequence="11" groups="account.group_account_user"/>
             <menuitem id="menu_finance_entries_generate_entries" name="Generate Entries" parent="account.menu_finance_entries"/>
 
-        <menuitem id="menu_finance_reports" name="Reporting" parent="menu_finance" sequence="20" groups="account.group_account_manager"/>
+        <menuitem id="menu_finance_reports" name="Reporting" parent="menu_finance" sequence="20" groups="account.group_account_readonly,account.group_account_invoice"/>
             <!-- Reporting sub-menus -->
             <menuitem id="account_reports_management_menu" name="Management" parent="account.menu_finance_reports" sequence="4"/>
-            <menuitem id="account_reports_legal_statements_menu" name="Generic Statements" parent="account.menu_finance_reports" sequence="1" groups="account.group_account_user"/>
+            <menuitem id="account_reports_legal_statements_menu" name="Generic Statements" parent="account.menu_finance_reports" sequence="1" groups="account.group_account_readonly"/>
 
         <menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="35" groups="account.group_account_manager"/>
             <!-- Configuration Sub-Menu -->
-            <menuitem id="account_invoicing_menu" name="Invoicing" parent="account.menu_finance_configuration" sequence="1" groups="account.group_account_invoice"/>
+            <menuitem id="account_invoicing_menu" name="Invoicing" parent="account.menu_finance_configuration" sequence="1" groups="account.group_account_invoice,account.group_account_readonly"/>
             <menuitem id="root_payment_menu" name="Payments" parent="account.menu_finance_configuration" sequence="2" groups="account.group_account_manager"/>
             <menuitem id="account_account_menu" name="Accounting" parent="account.menu_finance_configuration" sequence="3" groups="account.group_account_manager"/>
             <menuitem id="menu_action_currency_form" action="base.action_currency_form" name="Currencies" parent="account_account_menu" sequence="1" groups="base.group_multi_currency"/>
diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml
index 34ac96f894b965bc4f60644d850a16c132cec53c..cf4239940670d94ec22fc478e90c0f6b78d5622c 100644
--- a/addons/account/views/account_move_views.xml
+++ b/addons/account/views/account_move_views.xml
@@ -34,7 +34,7 @@
                                         <field name="statement_id" readonly="True" attrs="{'invisible': [('statement_id','=',False)]}"/>
                                     </group>
                                     <group string="Dates">
-                                        <field name="date" groups="account.group_account_user"/>
+                                        <field name="date" groups="account.group_account_readonly"/>
                                         <field name="date_maturity"/>
                                     </group>
 
@@ -141,12 +141,12 @@
                     <field name="company_id" groups="base.group_multi_company"/>
                     <field name="journal_id" options='{"no_open":True}'/>
                     <field name="move_id" optional="show"/>
-                    <field name="account_id" options="{'no_open': True}" groups="account.group_account_user"/>
+                    <field name="account_id" options="{'no_open': True}" groups="account.group_account_readonly"/>
                     <field name="partner_id" optional="show"/>
                     <field name="statement_id" invisible="1"/>
                     <field name="ref" optional="show"/>
                     <field name="name" optional="show"/>
-                    <field name="analytic_account_id" groups="account.group_account_user" optional="show"/>
+                    <field name="analytic_account_id" groups="account.group_account_readonly" optional="show"/>
                     <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags" optional="hide"/>
                     <field name="tax_ids" widget="many2many_tags" width="0.5" optional="show"/>
                     <field name="debit" sum="Total Debit"/>
@@ -175,7 +175,7 @@
                     <field name="move_id" optional="show"/>
                     <field name="account_id" optional="show" options="{'no_open': True, 'no_create': True}"
                            domain="[('company_id', '=', company_id)]"
-                           groups="account.group_account_user"/>
+                           groups="account.group_account_readonly"/>
                     <field name="statement_id" invisible="1"/>
                     <field name="partner_id" optional="show" readonly="1"/>
                     <field name="ref" optional="hide"/>
@@ -476,12 +476,12 @@
                                 string="Send &amp; Print"
                                 attrs="{'invisible':['|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}"
                                 class="oe_highlight"
-                                groups="base.group_user"/>
+                                groups="account.group_account_invoice"/>
                         <button name="action_invoice_sent"
                                 type="object"
                                 string="Send &amp; Print"
                                 attrs="{'invisible':['|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', False), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"
-                                groups="base.group_user"/>
+                                groups="account.group_account_invoice"/>
                         <!-- Register Payment (only invoices / receipts) -->
                         <button name="action_invoice_register_payment" id="account_invoice_payment_btn"
                                 type="object" class="oe_highlight"
@@ -509,17 +509,17 @@
                         <field name="state" widget="statusbar" statusbar_visible="draft,posted"/>
                     </header>
                     <!-- Invoice outstanding credits -->
-                    <div groups="account.group_account_invoice"
+                    <div groups="account.group_account_invoice,account.group_account_readonly"
                          class="alert alert-warning" role="alert" style="margin-bottom:0px;"
                          attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('tax_lock_date_message', '=', False)]}">
                         <field name="tax_lock_date_message" nolabel="1"/>
                     </div>
-                    <div groups="account.group_account_invoice"
+                    <div groups="account.group_account_invoice,account.group_account_readonly"
                          class="alert alert-info" role="alert" style="margin-bottom:0px;"
                          attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund')), ('invoice_has_outstanding', '=', False), ('payment_state', 'not in', ('not_paid', 'partial'))]}">
                         You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding payments</a></bold> for this customer. You can allocate them to mark this invoice as paid.
                     </div>
-                    <div groups="account.group_account_invoice"
+                    <div groups="account.group_account_invoice,account.group_account_readonly"
                          class="alert alert-info" role="alert" style="margin-bottom:0px;"
                          attrs="{'invisible': ['|', '|', ('type', 'not in', ('in_invoice', 'in_refund')), ('invoice_has_outstanding', '=', False), ('payment_state', 'not in', ('not_paid', 'partial'))]}">
                         You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding debits</a></bold> for this supplier. You can allocate them to mark this bill as paid.
@@ -641,7 +641,7 @@
 
                                 <field name="journal_id"
                                        invisible="context.get('default_journal_id') and context.get('type', 'entry') != 'entry'"
-                                       groups="account.group_account_user"
+                                       groups="account.group_account_readonly"
                                        options="{'no_create': True}"
                                        domain="[('type', '=?', invoice_filter_type_domain)]"
                                        attrs="{'readonly': [('name', '!=', '/')]}"/>
@@ -674,7 +674,7 @@
                                         <field name="product_id" optional="show" domain="['|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]"/>
                                         <field name="name" widget="section_and_note_text" attrs="{'required': [('parent.type', 'not in', ('in_invoice', 'in_refund','in_receipt'))]}"/>
                                         <field name="account_id"
-                                               groups="account.group_account_user"
+                                               groups="account.group_account_readonly"
                                                domain="[('deprecated', '=', False), ('user_type_id.type', 'not in', ('receivable', 'payable')), ('company_id', '=', parent.company_id)]"
                                                attrs="{'required': [('display_type', '=', False)]}"/>
                                         <field name="analytic_account_id"
@@ -857,7 +857,7 @@
                                 <!-- Internal note -->
                                 <field name="narration" placeholder="Add an internal note..." nolabel="1" height="50"/>
                             </page>
-                            <page id="aml_tab" string="Journal Items" groups="account.group_account_user">
+                            <page id="aml_tab" string="Journal Items" groups="account.group_account_readonly">
                                 <field name="line_ids"
                                        context="{'line_ids': line_ids, 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id != company_currency_id and currency_id or False}">
                                     <tree editable="bottom" string="Journal Items" decoration-muted="display_type in ('line_section', 'line_note')" default_order="sequence, date desc, move_name desc, id">
@@ -1134,6 +1134,7 @@
         <record id="action_accrual_entry" model="ir.actions.server">
             <field name="name">Create Accrual Entry</field>
             <field name="model_id" ref="account.model_account_move_line"/>
+            <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
             <field name="binding_model_id" ref="account.model_account_move_line"/>
             <field name="state">code</field>
             <field name="code">action = records.action_accrual_entry()</field>
@@ -1381,6 +1382,7 @@
         <record model="ir.actions.server" id="action_move_switch_invoice_to_credit_note">
             <field name="name">Switch into refund/credit note</field>
             <field name="model_id" ref="account.model_account_move"/>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
             <field name="binding_model_id" ref="account.model_account_move" />
             <field name="state">code</field>
             <field name="code">
@@ -1459,49 +1461,49 @@ if records:
             id="menu_action_move_journal_line_form"
             action="action_move_journal_line"
             parent="account.menu_finance_entries_accounting_miscellaneous"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_journal_sales"
             action="action_account_moves_journal_sales"
             parent="account.menu_finance_entries_accounting_journals"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_journal_purchase"
             action="action_account_moves_journal_purchase"
             parent="account.menu_finance_entries_accounting_journals"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_journal_bank_cash"
             action="action_account_moves_journal_bank_cash"
             parent="account.menu_finance_entries_accounting_journals"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_journal_misc"
             action="action_account_moves_journal_misc"
             parent="account.menu_finance_entries_accounting_journals"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_ledger_general"
             action="action_account_moves_ledger_general"
             parent="account.menu_finance_entries_accounting_ledgers"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
         <menuitem
             id="menu_action_account_moves_ledger_partner"
             action="action_account_moves_ledger_partner"
             parent="account.menu_finance_entries_accounting_ledgers"
-            groups="account.group_account_user"
+            groups="account.group_account_readonly"
             sequence="1"/>
 
     </data>
diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml
index e597561d5b7c533946b23ddccf53accde39b1c35..9e15c8c37737a0da6adf29e798faf73f0a323b88 100644
--- a/addons/account/views/account_payment_view.xml
+++ b/addons/account/views/account_payment_view.xml
@@ -124,7 +124,7 @@
                 <form string="Register Payment">
                     <header>
                         <button name="post" class="oe_highlight" states="draft" string="Confirm" type="object"/>
-                        <button name="action_draft" class="btn btn-secondary" attrs="{'invisible': [('state', '=', 'draft')]}" string="Reset To Draft" type="object"/>
+                        <button name="action_draft" class="btn btn-secondary" attrs="{'invisible': [('state', '=', 'draft')]}" string="Reset To Draft" type="object" groups="account.group_account_invoice"/>
                         <button name="cancel" states="draft" string="Cancel" type="object"/>
                         <field name="state" widget="statusbar" statusbar_visible="draft,posted,reconciled,cancelled"/>
                     </header>
@@ -132,7 +132,7 @@
                         <div class="oe_button_box" name="button_box">
                             <button class="oe_stat_button" name="button_journal_entries"
                                     string="Journal Items" type="object"
-                                    groups="account.group_account_user"
+                                    groups="account.group_account_readonly"
                                     attrs="{'invisible':[('move_line_ids','=',[])]}" icon="fa-bars"/>
                             <field name="move_line_ids" invisible="1"/>
                             <button class="oe_stat_button" name="button_invoices" type="object" icon="fa-bars" attrs="{'invisible':[('reconciled_invoices_count','=', 0)]}" >
@@ -178,7 +178,7 @@
                                 <field name="payment_date"/>
                                 <field name="communication"/>
                             </group>
-                            <group name="payment_difference" attrs="{'invisible': [('payment_difference', '=', 0.0)]}" groups="account.group_account_user">
+                            <group name="payment_difference" attrs="{'invisible': [('payment_difference', '=', 0.0)]}" groups="account.group_account_readonly">
                                 <label for="payment_difference"/>
                                 <div>
                                     <field name="payment_difference"/>
@@ -319,6 +319,7 @@
 
         <record id="action_account_invoice_from_list" model="ir.actions.server">
             <field name="name">Register Payment</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
             <field name="model_id" ref="account.model_account_payment"/>
             <field name="binding_model_id" ref="account.model_account_move"/>
             <field name="binding_view_types">list</field>
@@ -333,6 +334,7 @@
             <field name="name">Post Payments</field>
             <field name="type">ir.actions.server</field>
             <field name="state">code</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
             <field name="model_id" ref="account.model_account_payment"/>
             <field name="binding_model_id" ref="account.model_account_payment"/>
             <field name="binding_view_types">list</field>
diff --git a/addons/account/views/account_portal_templates.xml b/addons/account/views/account_portal_templates.xml
index deff73f9ebf388b6fc299238b175692ff6744070..5be631c873a3ba70e7cc2d348ebb810d16b2da33 100644
--- a/addons/account/views/account_portal_templates.xml
+++ b/addons/account/views/account_portal_templates.xml
@@ -74,7 +74,7 @@
 
     <template id="portal_invoice_page" name="Invoice Portal Template" inherit_id="portal.portal_sidebar" primary="True">
         <xpath expr="//div[hasclass('o_portal_sidebar')]" position="inside">
-            <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman,account.group_account_invoice">
+            <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman,account.group_account_invoice,account.group_account_readonly">
                 <t t-call="portal.portal_back_in_edit_mode">
                     <t t-set="backend_url" t-value="'/web#model=%s&amp;id=%s&amp;action=%s&amp;view_type=form' % (invoice._name, invoice.id, invoice.env.ref('account.action_move_out_invoice_type').id)"/>
                 </t>
diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml
index 034e0a5303c1e7f5dbd3f57ce8d73fd93ba18837..70a793113f2217eec136ea7aab3f7b6b34f52a86 100644
--- a/addons/account/views/account_report.xml
+++ b/addons/account/views/account_report.xml
@@ -11,7 +11,7 @@
             file="account.report_invoice_with_payments"
             attachment="(object.state == 'posted') and ((object.name or 'INV').replace('/','_')+'.pdf')"
             print_report_name="(object._get_report_base_filename())"
-            groups="account.group_account_invoice"
+            groups="account.group_account_invoice,account.group_account_readonly"
         />
 
         <record id="action_account_original_vendor_bill" model="ir.actions.report">
@@ -57,7 +57,7 @@
         />
 
         <report
-            id="action_report_account_statement" 
+            id="action_report_account_statement"
             model="account.bank.statement"
             string="Statement"
             name="account.report_statement"
diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml
index f9313188b6009f63f5a364d8af3c48e0710e1220..69982c3538566c06036a479c36eeafd007146085 100644
--- a/addons/account/views/account_view.xml
+++ b/addons/account/views/account_view.xml
@@ -143,7 +143,7 @@
             <field name="context">{'search_default_activeacc': True}</field>
         </record>
 
-        <menuitem action="action_account_form" id="menu_action_account_form" parent="account.account_account_menu" groups="account.group_account_user" sequence="1"/>
+        <menuitem action="action_account_form" id="menu_action_account_form" parent="account.account_account_menu" groups="account.group_account_readonly" sequence="1"/>
 
         <record id="action_duplicate_account" model="ir.actions.server">
             <field name="name">Duplicate</field>
@@ -277,7 +277,7 @@
                                         <field name="bank_id"/>
                                     </group>
                                     <group >
-                                        <field name="bank_statements_source" widget="radio" attrs="{'required': [('type', '=', 'bank')]}"  groups="account.group_account_user"/>
+                                        <field name="bank_statements_source" widget="radio" attrs="{'required': [('type', '=', 'bank')]}"  groups="account.group_account_readonly"/>
                                     </group>
                                 </group>
                             </page>
@@ -303,8 +303,8 @@
                                         </div>
                                     </group>
                                     <group>
-                                        <field name="default_debit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_user"/>
-                                        <field name="default_credit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_user"/>
+                                        <field name="default_debit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_readonly"/>
+                                        <field name="default_credit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_readonly"/>
                                         <field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/>
                                     </group>
                                 </group>
@@ -327,7 +327,7 @@
                                             <a type='action' name='%(action_open_settings)d' class="btn btn-link" role="button"><i class="fa fa-fw o_button_icon fa-arrow-right"/> Configure Email Servers</a>
                                         </div>
                                     </group>
-                                    <group string="Posting" name="column_posting" groups="account.group_account_user,account.group_account_manager" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}">
+                                    <group string="Posting" name="column_posting" groups="account.group_account_readonly" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}">
                                         <field name="profit_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/>
                                         <field name="loss_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/>
                                         <field name="post_at" widget="radio" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"/>
@@ -336,7 +336,7 @@
                                         <div class="text-muted" colspan="2">Keep empty for no control</div>
                                         <field name="type_control_ids" widget="many2many_tags"/>
                                         <field name="account_control_ids" widget="many2many_tags"/>
-                                        <field name="restrict_mode_hash_table" groups="account.group_account_user"/>
+                                        <field name="restrict_mode_hash_table" groups="account.group_account_readonly"/>
                                     </group>
                                     <group string="Payment Method Types" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}">
                                         <field name="inbound_payment_method_ids" widget="many2many_checkboxes"/>
@@ -996,7 +996,7 @@ action = model.setting_init_bank_account_action()
             id="account_report_folder"
             name="Reporting"
             parent="account_account_menu"
-            groups="account.group_account_manager"
+            groups="account.group_account_readonly"
             sequence="4"/>
 
         <!-- Account Types -->
@@ -1209,9 +1209,9 @@ action = model.setting_init_bank_account_action()
                                     <field name="price_include" attrs="{'invisible':[('amount_type','=', 'group')]}" />
                                     <field name="include_base_amount" attrs="{'invisible':[('amount_type','=', 'group')]}" />
                                     <field name="hide_tax_exigibility" invisible="1"/>
-                                    <field name="tax_exigibility" widget="radio" attrs="{'invisible':['|', ('amount_type','=', 'group'), ('hide_tax_exigibility', '=', False)]}" groups="account.group_account_user"/>
-                                    <field name="cash_basis_base_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')]}" groups="account.group_account_user"/>
-                                    <field name="cash_basis_transition_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')], 'required': [('tax_exigibility', '=', 'on_payment')]}" groups="account.group_account_user"/>
+                                    <field name="tax_exigibility" widget="radio" attrs="{'invisible':['|', ('amount_type','=', 'group'), ('hide_tax_exigibility', '=', False)]}" groups="account.group_account_readonly"/>
+                                    <field name="cash_basis_base_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')]}" groups="account.group_account_readonly"/>
+                                    <field name="cash_basis_transition_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')], 'required': [('tax_exigibility', '=', 'on_payment')]}" groups="account.group_account_readonly"/>
                                 </group>
                             </group>
                         </page>
diff --git a/addons/account/views/partner_view.xml b/addons/account/views/partner_view.xml
index ebccc1925ac17f67383e8be0efd80313ec375d31..1a706e80aa313ab94b591454406024444f471901 100644
--- a/addons/account/views/partner_view.xml
+++ b/addons/account/views/partner_view.xml
@@ -51,7 +51,7 @@
                             </field>
                         </group>
                         </page>
-                        <page name="account_mapping" string="Account Mapping" groups="account.group_account_user">
+                        <page name="account_mapping" string="Account Mapping" groups="account.group_account_readonly">
                         <group>
                             <field name="account_ids" widget="one2many" nolabel="1">
                                 <tree string="Account Mapping" editable="bottom">
@@ -113,7 +113,7 @@
             <field name="model">res.partner</field>
             <field name="inherit_id" ref="base.view_partner_form" />
             <field name="priority" eval="11"/>
-            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice')), (4, ref('account.group_account_readonly'))]"/>
             <field name="arch" type="xml">
                 <div name="button_box" position="inside">
                     <button type="object" class="oe_stat_button" icon="fa-pencil-square-o" name="action_view_partner_invoices"
@@ -167,9 +167,9 @@
             <field name="groups_id" eval="[(5,)]"/>
             <field name="arch" type="xml">
                 <page name="sales_purchases" position="after">
-                    <page string="Invoicing" name="accounting" attrs="{'invisible': [('is_company','=',False),('parent_id','!=',False)]}" groups="account.group_account_invoice">
+                    <page string="Invoicing" name="accounting" attrs="{'invisible': [('is_company','=',False),('parent_id','!=',False)]}" groups="account.group_account_invoice,account.group_account_readonly">
                         <group>
-                            <group string="Bank Accounts" name="banks" groups="account.group_account_invoice">
+                            <group string="Bank Accounts" name="banks" groups="account.group_account_invoice,account.group_account_readonly">
                                 <field name="bank_ids" nolabel="1">
                                     <tree editable="bottom">
                                         <field name="sequence" widget="handle"/>
@@ -185,29 +185,29 @@
                                     colspan="2"
                                 />
                             </group>
-                            <group string="Accounting Entries" name="accounting_entries" groups="account.group_account_user">
+                            <group string="Accounting Entries" name="accounting_entries" groups="account.group_account_readonly">
                                 <field name="currency_id" invisible="1"/>
                                 <field name="property_account_receivable_id"/>
                                 <field name="property_account_payable_id"/>
                             </group>
                         </group>
                     </page>
-                    <page string="Invoicing" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice">
+                    <page string="Invoicing" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice,account.group_account_readonly">
                         <div>
                             <p>Accounting-related settings are managed on <button name="open_commercial_entity" type="object" string="the parent company" class="oe_link"/></p>
                         </div>
                     </page>
                 </page>
                 <xpath expr="//group[@name='misc']" position="before">
-                    <group string="Fiscal Information" name="fiscal_information" priority="5" groups="account.group_account_invoice">
+                    <group string="Fiscal Information" name="fiscal_information" priority="5" groups="account.group_account_invoice,account.group_account_readonly">
                         <field name="property_account_position_id" options="{'no_create': True, 'no_open': True}"/>
                     </group>
                 </xpath>
                 <group name="sale" position="inside">
-                    <field string="Payment Terms" name="property_payment_term_id" widget="selection" groups="account.group_account_invoice"/>
+                    <field string="Payment Terms" name="property_payment_term_id" widget="selection" groups="account.group_account_invoice,account.group_account_readonly"/>
                 </group>
                 <group name="purchase" position="inside">
-                    <field string="Payment Terms" name="property_supplier_payment_term_id" widget="selection" groups="account.group_account_invoice"/>
+                    <field string="Payment Terms" name="property_supplier_payment_term_id" widget="selection" groups="account.group_account_invoice,account.group_account_readonly"/>
                 </group>
             </field>
         </record>
diff --git a/addons/account/views/product_view.xml b/addons/account/views/product_view.xml
index d7c4b77e3835aec15e92123a6eb800aeb5cb8dfe..8f000c0c714edae7827e8c6d9103039de88f584a 100644
--- a/addons/account/views/product_view.xml
+++ b/addons/account/views/product_view.xml
@@ -11,17 +11,17 @@
                     <attribute name="invisible">0</attribute>
                 </xpath>
                 <page name="inventory" position="after">
-                    <page string="Accounting" name="invoicing" groups="account.group_account_user">
+                    <page string="Accounting" name="invoicing" groups="account.group_account_readonly">
                         <group name="properties">
                             <group string="Receivables">
                                 <field name="property_account_income_id"
                                     domain="[('internal_type','=','other'),('deprecated','=',False)]"
-                                    groups="account.group_account_user"/>
+                                    groups="account.group_account_readonly"/>
                             </group>
                             <group string="Payables" name="payables">
                                 <field name="property_account_expense_id"
                                     domain="[('internal_type','=','other'),('deprecated','=',False)]"
-                                    groups="account.group_account_user"/>
+                                    groups="account.group_account_readonly"/>
                             </group>
                         </group>
                         <group name="accounting"/>
@@ -43,7 +43,7 @@
             <field name="arch" type="xml">
                 <group name="first" position="after">
                     <group name="account_property" >
-                        <group string="Account Properties" groups="account.group_account_user">
+                        <group string="Account Properties" groups="account.group_account_readonly">
                             <field name="property_account_income_categ_id" domain="[('internal_type','=','other'),('deprecated', '=', False)]"/>
                             <field name="property_account_expense_categ_id" domain="[('internal_type','=','other'),('deprecated', '=', False)]"/>
                         </group>
diff --git a/addons/account/views/res_config_settings_views.xml b/addons/account/views/res_config_settings_views.xml
index 3c8fbffd5097634cb91a8f26e6db5a2476318eb9..e27e635023b744d896bb3fdd7b1c9fa5a0c2156f 100644
--- a/addons/account/views/res_config_settings_views.xml
+++ b/addons/account/views/res_config_settings_views.xml
@@ -416,7 +416,7 @@
                                             <field name="account_bank_reconciliation_start"/>
                                         </div>
                                     </div>
-                                <div class="col-12 col-lg-6 o_setting_box" 
+                                <div class="col-12 col-lg-6 o_setting_box"
                                     id="account_yodlee"
                                     title="Get your bank statements automatically imported every 4 hours, or in one-click, using Yodlee and Plaid services. Once installed, set “Bank Feeds” to “Bank Synchronization” in bank account settings. Then, click “Configure” on the online account to enter your bank credentials.">
                                     <div class="o_setting_left_pane">
diff --git a/addons/account/wizard/account_move_reversal_view.xml b/addons/account/wizard/account_move_reversal_view.xml
index 28371f68c9083ad4dfeaad8a22b8509d2324a3b3..00da15247201d13f616b269a34f14954c85e0168 100644
--- a/addons/account/wizard/account_move_reversal_view.xml
+++ b/addons/account/wizard/account_move_reversal_view.xml
@@ -51,6 +51,7 @@
             <field name="view_mode">tree,form</field>
             <field name="view_id" ref="view_account_move_reversal"/>
             <field name="target">new</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
             <field name="binding_model_id" ref="account.model_account_move" />
             <field name="binding_view_types">list</field>
         </record>
diff --git a/addons/account/wizard/account_unreconcile_view.xml b/addons/account/wizard/account_unreconcile_view.xml
index 5a6a1ae9b9d3505c55b294ed2ad29077b3c84cba..c1175301193f94e859c09ddc5ae3c905603edecb 100644
--- a/addons/account/wizard/account_unreconcile_view.xml
+++ b/addons/account/wizard/account_unreconcile_view.xml
@@ -19,6 +19,7 @@
 
         <record id="action_account_unreconcile" model="ir.actions.act_window">
             <field name="name">Unreconcile</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
             <field name="res_model">account.unreconcile</field>
             <field name="view_mode">form</field>
             <field name="view_id" ref="account_unreconcile_view"/>
diff --git a/addons/account/wizard/account_validate_move_view.xml b/addons/account/wizard/account_validate_move_view.xml
index 062a2e5838e667fb396654906f7955e85d3b4a90..c6439570c6b0ebef85eb2751b1a263de06d30437 100644
--- a/addons/account/wizard/account_validate_move_view.xml
+++ b/addons/account/wizard/account_validate_move_view.xml
@@ -26,6 +26,7 @@
             <field name="context">{}</field>
             <field name="target">new</field>
             <field name="help">This wizard will validate all journal entries selected. Once journal entries are validated, you can not update them anymore.</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
             <field name="binding_model_id" ref="account.model_account_move" />
             <field name="binding_view_types">list</field>
         </record>
diff --git a/addons/account_analytic_default/security/ir.model.access.csv b/addons/account_analytic_default/security/ir.model.access.csv
index 0189037ca4588df66cb7e79bd545d353c5c9b6c5..3e0535f96c7abae4676a9dec76ebfb836f9a1545 100644
--- a/addons/account_analytic_default/security/ir.model.access.csv
+++ b/addons/account_analytic_default/security/ir.model.access.csv
@@ -1,4 +1,4 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_account_analytic_default,account.analytic.default,model_account_analytic_default,account.group_account_user,1,0,0,0
+access_account_analytic_default,account.analytic.default,model_account_analytic_default,account.group_account_readonly,1,0,0,0
 access_account_analytic_default_analytic,account.analytic.default analytic,model_account_analytic_default,analytic.group_analytic_accounting,1,0,0,0
 access_account_analytic_default_invoice,account.analytic.default invoice,model_account_analytic_default,account.group_account_invoice,1,1,1,1
diff --git a/addons/account_check_printing/data/account_check_printing_data.xml b/addons/account_check_printing/data/account_check_printing_data.xml
index 9f3fd4ded037f613aae53173891b7c242f180bd0..923e61cef2944428a3162ca9b99d32f62b70042f 100644
--- a/addons/account_check_printing/data/account_check_printing_data.xml
+++ b/addons/account_check_printing/data/account_check_printing_data.xml
@@ -16,6 +16,7 @@
             <field name="model_id" ref="account.model_account_payment"/>
             <field name="binding_model_id" ref="account.model_account_payment" />
             <field name="binding_view_types">list</field>
+            <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
             <field name="state">code</field>
             <field name="code">
 if records:
diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml
index 15db591d01eba080e8bb790ab173d226b52ca9ab..545d30c1e921a0ee875f270ad6d692d116ab2ed8 100644
--- a/addons/hr_expense/views/hr_expense_views.xml
+++ b/addons/hr_expense/views/hr_expense_views.xml
@@ -105,12 +105,12 @@
                                 <field name="quantity" class="oe_inline"/>
                                 <field name="product_uom_id" required="1" widget="selection" class="oe_inline" groups="uom.group_uom"/>
                             </div>
-                            <field name="tax_ids" widget="many2many_tags" groups="account.group_account_user" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/>
+                            <field name="tax_ids" widget="many2many_tags" groups="account.group_account_readonly" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/>
                             <field name="total_amount" widget='monetary' options="{'currency_field': 'currency_id'}"/>
                         </group><group>
                             <field name="reference" attrs="{'readonly': [('is_ref_editable', '=', False)]}"/>
                             <field name="date"/>
-                            <field name="account_id" options="{'no_create': True}" domain="[('internal_type', '=', 'other'), ('company_id', '=', company_id)]" groups="account.group_account_user" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/>
+                            <field name="account_id" options="{'no_create': True}" domain="[('internal_type', '=', 'other'), ('company_id', '=', company_id)]" groups="account.group_account_readonly" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/>
                             <field name="employee_id" groups="hr_expense.group_hr_expense_team_approver" context="{'default_company_id': company_id}"/>
                             <field name="sheet_id" invisible="1"/>
                             <field name="currency_id" groups="base.group_multi_currency"/>
@@ -351,7 +351,7 @@
                                 <field name="company_id" groups="base.group_multi_company"/>
                             </group>
                             <group string="Accounting">
-                                <field name="property_account_expense_id" groups="account.group_account_user"/>
+                                <field name="property_account_expense_id" groups="account.group_account_readonly"/>
                                 <field name="supplier_taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'purchase'}"/>
                                 <field name="taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'sale'}"/>
                             </group>
@@ -534,7 +534,7 @@
                                 <field name="currency_id" optional="hide"/>
                                 <field name="quantity" optional="hide"/>
                                 <field name="company_id"/>
-                                <field name="tax_ids" optional="hide" widget="many2many_tags" groups="account.group_account_user" context="{'default_company_id': company_id}"/>
+                                <field name="tax_ids" optional="hide" widget="many2many_tags" groups="account.group_account_readonly" context="{'default_company_id': company_id}"/>
                                 <field name="total_amount" optional="show"/>
                                 <field name="company_currency_id" invisible="1"/>
                                 <field name="total_amount_company" optional="show" groups="base.group_multi_currency"/>
@@ -553,11 +553,11 @@
                             <group>
                                 <group>
                                     <field name="journal_id" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'own_account')]}" context="{'default_company_id': company_id}"/>
-                                    <field name="bank_journal_id" groups="account.group_account_user" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'company_account')]}" context="{'default_company_id': company_id}"/>
-                                    <field name="accounting_date" groups="account.group_account_user" attrs="{'invisible': [('state', 'not in', ['approve', 'post', 'done'])]}"/>
+                                    <field name="bank_journal_id" groups="account.group_account_readonly" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'company_account')]}" context="{'default_company_id': company_id}"/>
+                                    <field name="accounting_date" groups="account.group_account_readonly" attrs="{'invisible': [('state', 'not in', ['approve', 'post', 'done'])]}"/>
                                 </group>
                                 <group>
-                                    <field name="account_move_id" groups="account.group_account_user" attrs="{'invisible': [('state', 'not in', ['post', 'done'])]}" readonly="1"/>
+                                    <field name="account_move_id" groups="account.group_account_readonly" attrs="{'invisible': [('state', 'not in', ['post', 'done'])]}" readonly="1"/>
                                 </group>
                             </group>
                         </page>
@@ -867,9 +867,9 @@ if records:
         <menuitem id="menu_hr_expense_sheet_all_to_approve" name="To Approve" sequence="1" parent="menu_hr_expense_report"
             action="action_hr_expense_sheet_all_to_approve"/>
         <menuitem id="menu_hr_expense_sheet_all_to_post" name="To Post" sequence="2" parent="menu_hr_expense_report"
-            action="action_hr_expense_sheet_all_to_post" groups="account.group_account_user"/>
+            action="action_hr_expense_sheet_all_to_post" groups="account.group_account_readonly"/>
         <menuitem id="menu_hr_expense_sheet_all_to_pay" name="To Pay" sequence="3" parent="menu_hr_expense_report"
-            action="action_hr_expense_sheet_all_to_pay" groups="account.group_account_user"/>
+            action="action_hr_expense_sheet_all_to_pay" groups="account.group_account_readonly"/>
 
         <menuitem id="menu_hr_expense_reports" name="Reporting" sequence="4" parent="menu_hr_expense_root" groups="hr_expense.group_hr_expense_manager"/>
         <menuitem id="menu_hr_expense_all_expenses" name="Expenses Analysis" sequence="0" parent="menu_hr_expense_reports" action="hr_expense_actions_all"/>
diff --git a/addons/l10n_ae/data/l10n_ae_chart_data.xml b/addons/l10n_ae/data/l10n_ae_chart_data.xml
index eb6481643862ab8a0a3657fe945ba1a55b43c8e2..337ef71fea70dc9f96d2e41f622665f3c0bd9bef 100644
--- a/addons/l10n_ae/data/l10n_ae_chart_data.xml
+++ b/addons/l10n_ae/data/l10n_ae_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_ae_statements_menu" name="UAE" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_ae_statements_menu" name="UAE" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
      <record id="uae_chart_template_standard" model="account.chart.template">
          <field name="name">U.A.E Chart of Accounts - Standard</field>
diff --git a/addons/l10n_ar/data/account_chart_template_data2.xml b/addons/l10n_ar/data/account_chart_template_data2.xml
index f5227d6c076483e3fab1d095a9467b6c4693f96c..24a82b56b1b63ba5ecb4ea75c6f1b7085dcebf9a 100644
--- a/addons/l10n_ar/data/account_chart_template_data2.xml
+++ b/addons/l10n_ar/data/account_chart_template_data2.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo noupdate="0">
 
-    <menuitem id="account_reports_ar_statements_menu" name="Argentinian Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_user"/>
+    <menuitem id="account_reports_ar_statements_menu" name="Argentinian Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_readonly"/>
 
     <record id="l10nar_base_chart_template" model="account.chart.template">
         <field name="property_account_receivable_id" ref="base_deudores_por_ventas"/>
diff --git a/addons/l10n_ar/report/invoice_report_view.xml b/addons/l10n_ar/report/invoice_report_view.xml
index 6af473a6b51e7c1fe60eb85c86821a60befb51b0..97e565781ace512ece9e152a74a3b1b3c5aa9c88 100644
--- a/addons/l10n_ar/report/invoice_report_view.xml
+++ b/addons/l10n_ar/report/invoice_report_view.xml
@@ -12,7 +12,7 @@
             </search>
             <filter name="user" position="after">
                 <filter string="State" name="groupby_l10n_ar_state_id" context="{'group_by': 'l10n_ar_state_id'}"/>
-                <filter string="Account" name="groupby_account_id" context="{'group_by':'account_id'}" groups="account.group_account_user" />
+                <filter string="Account" name="groupby_account_id" context="{'group_by':'account_id'}" groups="account.group_account_readonly" />
             </filter>
         </field>
     </record>
diff --git a/addons/l10n_at/data/account_chart_template.xml b/addons/l10n_at/data/account_chart_template.xml
index 90ca464cae4e192b3af0e07a19be2b2831db9c5b..4ab0bdd17285ccfd729e58410e3a22d6108e98c0 100644
--- a/addons/l10n_at/data/account_chart_template.xml
+++ b/addons/l10n_at/data/account_chart_template.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <odoo>
-    <menuitem id="menu_finance_austria" name="Austria" parent="account.menu_finance_reports" sequence="-1" groups="account.group_account_user"/>
+    <menuitem id="menu_finance_austria" name="Austria" parent="account.menu_finance_reports" sequence="-1" groups="account.group_account_readonly"/>
 
     <data>
         <!-- Vorlagen: Kontenplan -->
diff --git a/addons/l10n_be/data/menuitem_data.xml b/addons/l10n_be/data/menuitem_data.xml
index 08e4e2991dca4ab281051378612a594dffbe2dbd..d7547019cef2777d53a0b05a784da5f07605934a 100644
--- a/addons/l10n_be/data/menuitem_data.xml
+++ b/addons/l10n_be/data/menuitem_data.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_be_statements_menu" name="Belgium" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_be_statements_menu" name="Belgium" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 </odoo>
diff --git a/addons/l10n_bo/data/l10n_bo_chart_data.xml b/addons/l10n_bo/data/l10n_bo_chart_data.xml
index e64fbc31a26ea1db631cc6e094a8418a83493c21..2cd7ead995ab2b33c3c2f94831f96de90246b69d 100644
--- a/addons/l10n_bo/data/l10n_bo_chart_data.xml
+++ b/addons/l10n_bo/data/l10n_bo_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_bo_statements_menu" name="Bolivia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_bo_statements_menu" name="Bolivia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="bo_chart_template" model="account.chart.template">
         <field name="name">Bolivia - Plan de Cuentas</field>
diff --git a/addons/l10n_br/data/l10n_br_chart_data.xml b/addons/l10n_br/data/l10n_br_chart_data.xml
index 05ec37f20872cc60747d50493360964d1cc8872a..fda672e894cb81d1b91eb7a4106389c11286d6a4 100644
--- a/addons/l10n_br/data/l10n_br_chart_data.xml
+++ b/addons/l10n_br/data/l10n_br_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_br_statements_menu" name="Brazil" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_br_statements_menu" name="Brazil" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
 	<record id="l10n_br_account_chart_template" model="account.chart.template">
 		<field name="name">Planilha de Contas Brasileira</field>
diff --git a/addons/l10n_ch/data/l10n_ch_chart_data.xml b/addons/l10n_ch/data/l10n_ch_chart_data.xml
index 484af4b7ee25620ecff10f446d0185a47dcbfdf1..7fba5530b7a329080d56b1ec91f28b93e24c4293 100644
--- a/addons/l10n_ch/data/l10n_ch_chart_data.xml
+++ b/addons/l10n_ch/data/l10n_ch_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_ch_statements_menu" name="Switzerland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_ch_statements_menu" name="Switzerland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <data noupdate="1">
          <!-- Account Tags -->
diff --git a/addons/l10n_cl/data/menuitem_data.xml b/addons/l10n_cl/data/menuitem_data.xml
index d5b35a26022598550164f5dcd9e4535f38c5348e..effb0ee9ba4dafe6add68e5bb1a7e724f79b9c93 100644
--- a/addons/l10n_cl/data/menuitem_data.xml
+++ b/addons/l10n_cl/data/menuitem_data.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_cl_statements_menu" name="Chile" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
-</odoo>
\ No newline at end of file
+    <menuitem id="account_reports_cl_statements_menu" name="Chile" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
+</odoo>
diff --git a/addons/l10n_co/data/account_chart_template_data.xml b/addons/l10n_co/data/account_chart_template_data.xml
index 62cae3454977f89daf0ede15613965e655fdffac..50e31aec84b45f822e55a5170d1041fd93de0edd 100644
--- a/addons/l10n_co/data/account_chart_template_data.xml
+++ b/addons/l10n_co/data/account_chart_template_data.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_co_statements_menu" name="Colombia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
-    
+    <menuitem id="account_reports_co_statements_menu" name="Colombia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
+
         <!-- Chart Template -->
         <record id="l10n_co_chart_template_generic" model="account.chart.template">
             <field name="property_account_receivable_id" ref="co_puc_130505"/>
diff --git a/addons/l10n_de/data/menuitem_data.xml b/addons/l10n_de/data/menuitem_data.xml
index 1ab90dd1b7fc5bcf9f7df0a3d2aaf1eb761e592d..bcf3165a4428cafdd12bfec97024665d79f72f4b 100644
--- a/addons/l10n_de/data/menuitem_data.xml
+++ b/addons/l10n_de/data/menuitem_data.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_de_statements_menu" name="Germany" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_de_statements_menu" name="Germany" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 </odoo>
diff --git a/addons/l10n_do/data/l10n_do_chart_data.xml b/addons/l10n_do/data/l10n_do_chart_data.xml
index 13e4cdf8969b818e4e92daaff3c25c9284d4bed5..3b24155542f65ccafa7398ba7cf0501689dba54b 100644
--- a/addons/l10n_do/data/l10n_do_chart_data.xml
+++ b/addons/l10n_do/data/l10n_do_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_do_statements_menu" name="Dominican Republic" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_do_statements_menu" name="Dominican Republic" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <!-- Chart of Accounts Template -->
     <record id="do_chart_template" model="account.chart.template">
diff --git a/addons/l10n_et/data/l10n_et_chart_data.xml b/addons/l10n_et/data/l10n_et_chart_data.xml
index 73daa2ad63f8e44f3fb7bb3d2e7ce397c095c012..127143d6d111320ff207529cbe5ac612eb54d7c1 100644
--- a/addons/l10n_et/data/l10n_et_chart_data.xml
+++ b/addons/l10n_et/data/l10n_et_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_et_statements_menu" name="Ethiopia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_et_statements_menu" name="Ethiopia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="l10n_et" model="account.chart.template">
         <field name="name">Ethiopia Tax and Account Chart Template</field>
diff --git a/addons/l10n_fr/data/account_chart_template_data.xml b/addons/l10n_fr/data/account_chart_template_data.xml
index 984064056f74d059c8938ef40dafdcfde5348991..be9387183c3e8dc9b0239b5e90d980141093af63 100644
--- a/addons/l10n_fr/data/account_chart_template_data.xml
+++ b/addons/l10n_fr/data/account_chart_template_data.xml
@@ -10,7 +10,7 @@
         <field name="applicability">accounts</field>
     </record>
 
-    <menuitem id="account_reports_fr_statements_menu" name="France" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_fr_statements_menu" name="France" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="l10n_fr_pcg_chart_template" model="account.chart.template">
       <field name="property_account_receivable_id" ref="fr_pcg_recv"/>
diff --git a/addons/l10n_fr_pos_cert/views/account_sale_closure.xml b/addons/l10n_fr_pos_cert/views/account_sale_closure.xml
index 24e4c14cd71cf8d6d5a3b3d5011f1e757c311735..1a94ad56a98af99345d1fb4ee52a7a21cdb193b1 100644
--- a/addons/l10n_fr_pos_cert/views/account_sale_closure.xml
+++ b/addons/l10n_fr_pos_cert/views/account_sale_closure.xml
@@ -37,8 +37,8 @@
                         <group>
                             <field name="total_interval"/>
                             <field name="cumulative_total"/>
-                            <field name="last_order_id" groups="account.group_account_user"/>
-                            <field name="last_order_hash" groups="account.group_account_user"/>
+                            <field name="last_order_id" groups="account.group_account_readonly"/>
+                            <field name="last_order_hash" groups="account.group_account_readonly"/>
                         </group>
                         <group>
                             <field name="company_id" groups="base.group_multi_company"/>
diff --git a/addons/l10n_gr/data/l10n_gr_chart_data.xml b/addons/l10n_gr/data/l10n_gr_chart_data.xml
index e77991bc2c4cbd9d907297e3db42a68df6c3b18e..6dd19e77f7e62caed019e39a54ac00e18e2c1b18 100644
--- a/addons/l10n_gr/data/l10n_gr_chart_data.xml
+++ b/addons/l10n_gr/data/l10n_gr_chart_data.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
 
-        <menuitem id="account_reports_gr_statements_menu" name="Greece" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+        <menuitem id="account_reports_gr_statements_menu" name="Greece" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
         <record id="l10n_gr_chart_template" model="account.chart.template">
             <field name="name">Πρότυπο Ελληνικού Λογιστικού Σχεδίου</field>
diff --git a/addons/l10n_hr/data/l10n_hr_chart_data.xml b/addons/l10n_hr/data/l10n_hr_chart_data.xml
index 82ccb4abdf96e29467a254c3f85f1ed87bb17e43..6653fe99cccbcb981637c425453421bfaa8d06bb 100644
--- a/addons/l10n_hr/data/l10n_hr_chart_data.xml
+++ b/addons/l10n_hr/data/l10n_hr_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_hr_statements_menu" name="Croatia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_hr_statements_menu" name="Croatia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <data noupdate="1">
 
diff --git a/addons/l10n_hu/data/l10n_hu_chart_data.xml b/addons/l10n_hu/data/l10n_hu_chart_data.xml
index 0d8b0341a3b64d0aad931b7eb0a2d45be9176e83..555d05c9bdfd489de2df618aa98cb510898610f3 100644
--- a/addons/l10n_hu/data/l10n_hu_chart_data.xml
+++ b/addons/l10n_hu/data/l10n_hu_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_hu_statements_menu" name="Hungary" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_hu_statements_menu" name="Hungary" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="hungarian_chart_template" model="account.chart.template">
         <field name="name">Magyar főkönyvi kivonat</field>
@@ -10,4 +10,4 @@
         <field name="transfer_account_code_prefix">389</field>
         <field name="currency_id" ref="base.HUF"/>
     </record>
-</odoo>
\ No newline at end of file
+</odoo>
diff --git a/addons/l10n_ie/data/account_chart_template.xml b/addons/l10n_ie/data/account_chart_template.xml
index a757b06019bddf56fa517f6da8728083d29f2e94..649c09d6657a4c33548eb972be141f0da58e1693 100644
--- a/addons/l10n_ie/data/account_chart_template.xml
+++ b/addons/l10n_ie/data/account_chart_template.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <odoo noupdate="1">
-    <menuitem id="account_reports_ie_statements_menu" name="Irish Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_user"/>
+    <menuitem id="account_reports_ie_statements_menu" name="Irish Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_readonly"/>
 
     <!-- Chart template -->
     <record id="l10n_ie" model="account.chart.template">
diff --git a/addons/l10n_lu/data/l10n_lu_chart_data.xml b/addons/l10n_lu/data/l10n_lu_chart_data.xml
index 537b6210167b54a47b4c1bc826b4eaddfae7dee3..4b68af3affde22ab5b8bc54bf3f1f6abf54f5a37 100644
--- a/addons/l10n_lu/data/l10n_lu_chart_data.xml
+++ b/addons/l10n_lu/data/l10n_lu_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-        <menuitem id="account_reports_lu_statements_menu" name="Luxembourg" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+        <menuitem id="account_reports_lu_statements_menu" name="Luxembourg" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
         <record id="lu_2011_chart_1" model="account.chart.template">
             <field name="name">PCMN Luxembourg</field>
diff --git a/addons/l10n_ma/data/l10n_ma_chart_data.xml b/addons/l10n_ma/data/l10n_ma_chart_data.xml
index 76c0d257799800690ef165fbf4f80c193219edfb..5943976bab2372f7ae20965114b74bfe2f1a1811 100644
--- a/addons/l10n_ma/data/l10n_ma_chart_data.xml
+++ b/addons/l10n_ma/data/l10n_ma_chart_data.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-15"?>
 <odoo>
-        <!--     
+        <!--
         Plan comptable général pour le Maroc.
     Version du fichier : 13-10-2010
     Mis en place par la société Kazacube - partenaire OpenERP au Maroc
     Vérifié et validé par le cabinet SEDDIK d'expertise comptable, Casablanca.
-      --> 
-    <menuitem id="account_reports_ma_statements_menu" name="Morocco" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+      -->
+    <menuitem id="account_reports_ma_statements_menu" name="Morocco" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="l10n_kzc_temp_chart" model="account.chart.template">
         <field name="name">Plan comptable marocain</field>
diff --git a/addons/l10n_mn/data/account_chart_template_data.xml b/addons/l10n_mn/data/account_chart_template_data.xml
index 0d24db96803315e41ab539005051f2ec9e62fe34..29400dfaaaf597558668f9b52f418d798d3b1dcc 100644
--- a/addons/l10n_mn/data/account_chart_template_data.xml
+++ b/addons/l10n_mn/data/account_chart_template_data.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
 
-    <menuitem id="account_reports_mn_statements_menu" name="Mongolia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_mn_statements_menu" name="Mongolia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="mn_chart_1" model="account.chart.template">
         <field name="name">Mongolia</field>
diff --git a/addons/l10n_nl/data/menuitem.xml b/addons/l10n_nl/data/menuitem.xml
index 0f39553f2a062b5675606295f65b5ff6c915fd2b..303431e2949cec0733e1c67817640c4d14eaa0f0 100644
--- a/addons/l10n_nl/data/menuitem.xml
+++ b/addons/l10n_nl/data/menuitem.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <odoo>
-    <menuitem id="account_reports_nl_statements_menu" name="Netherlands" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_nl_statements_menu" name="Netherlands" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 </odoo>
diff --git a/addons/l10n_no/data/l10n_no_chart_data.xml b/addons/l10n_no/data/l10n_no_chart_data.xml
index 906cf42a6e826ac0c63a7f4e42a957a755b4fd40..cbc3d55993bd850dc0871c718d46b7870902192f 100644
--- a/addons/l10n_no/data/l10n_no_chart_data.xml
+++ b/addons/l10n_no/data/l10n_no_chart_data.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_no_statements_menu" name="Norway" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_no_statements_menu" name="Norway" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <data noupdate="1">
 
-	<menuitem id="account_reports_no_statements_menu" name="Norwegian Statements" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+	<menuitem id="account_reports_no_statements_menu" name="Norwegian Statements" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <!-- COA Templates -->
     <record id="no_chart_template" model="account.chart.template">
diff --git a/addons/l10n_pl/data/l10n_pl_chart_data.xml b/addons/l10n_pl/data/l10n_pl_chart_data.xml
index eabf177a7881074c122aea900d306181f4b5789e..20afa256457e2bdd76e2f52c222443293eca7309 100644
--- a/addons/l10n_pl/data/l10n_pl_chart_data.xml
+++ b/addons/l10n_pl/data/l10n_pl_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-<menuitem id="account_reports_pl_statements_menu" name="Poland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+<menuitem id="account_reports_pl_statements_menu" name="Poland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
 <data noupdate="1">
 
diff --git a/addons/l10n_ro/data/l10n_ro_chart_data.xml b/addons/l10n_ro/data/l10n_ro_chart_data.xml
index 8d89c28e74cc050c328adceccced93f72d061d62..e07d7167dd44668617a3d6139df4f98febb2a19e 100644
--- a/addons/l10n_ro/data/l10n_ro_chart_data.xml
+++ b/addons/l10n_ro/data/l10n_ro_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_ro_statements_menu" name="Romania" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_ro_statements_menu" name="Romania" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <!-- Chart template -->
     <record id="ro_chart_template" model="account.chart.template">
diff --git a/addons/l10n_sg/data/l10n_sg_chart_data.xml b/addons/l10n_sg/data/l10n_sg_chart_data.xml
index ca5491cc2798de59afd0c42ac9b74fed535137c5..d5bad956b0aa2bf0dc5493b5e140bbcad3d2c528 100644
--- a/addons/l10n_sg/data/l10n_sg_chart_data.xml
+++ b/addons/l10n_sg/data/l10n_sg_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_sg_statements_menu" name="Singapore" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_sg_statements_menu" name="Singapore" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
         <record id="sg_chart_template" model="account.chart.template">
             <field name="name">Singapore Chart of Accounts - Standard</field>
@@ -290,7 +290,7 @@
             <field name="chart_template_id" ref="sg_chart_template"/>
             <field name="reconcile" eval="False" />
         </record>
-        
+
         <record model="account.account.template" id="account_account_735">
             <field name="name">Trade Receivable Account</field>
             <field name="code">100010</field>
diff --git a/addons/l10n_si/data/l10n_si_chart_data.xml b/addons/l10n_si/data/l10n_si_chart_data.xml
index 0e5c0958382dc5601d197c0e347ce84602247069..d4392018d76844c778793aece7c7c4d10bc04790 100644
--- a/addons/l10n_si/data/l10n_si_chart_data.xml
+++ b/addons/l10n_si/data/l10n_si_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_si_statements_menu" name="Slovenia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_si_statements_menu" name="Slovenia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
     <!-- Chart Template -->
     <record id="gd_chart" model="account.chart.template">
         <field name="name">Kontni načrt za gospodarske družbe</field>
diff --git a/addons/l10n_th/data/l10n_th_chart_data.xml b/addons/l10n_th/data/l10n_th_chart_data.xml
index ec18b1631eeb41561ef23da93dccc67abbd43b85..36a6c23c86b0529da388458080fa439fc5ec9d2a 100644
--- a/addons/l10n_th/data/l10n_th_chart_data.xml
+++ b/addons/l10n_th/data/l10n_th_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_th_statements_menu" name="Thailand" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_th_statements_menu" name="Thailand" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 <!-- ACCOUNT TYPES -->
 
 <record id="acc_type_reconciled" model="account.account.type">
diff --git a/addons/l10n_uk/data/l10n_uk_chart_data.xml b/addons/l10n_uk/data/l10n_uk_chart_data.xml
index 4125fd23b98d40e7b998ebb49f6d914ede4eda42..ed3d46d5c9ace1efa023d35d3b5e5bd2b56ccfa7 100644
--- a/addons/l10n_uk/data/l10n_uk_chart_data.xml
+++ b/addons/l10n_uk/data/l10n_uk_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_uk_statements_menu" name="United Kingdom" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_uk_statements_menu" name="United Kingdom" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
         <!-- Chart template -->
         <record id="l10n_uk" model="account.chart.template">
diff --git a/addons/l10n_uy/data/l10n_uy_chart_data.xml b/addons/l10n_uy/data/l10n_uy_chart_data.xml
index 4811686343d60f9cfb9c1d15736b2a3bac378e75..3a358d09960bbd21aa790f45e8f0a1976f0b77ca 100644
--- a/addons/l10n_uy/data/l10n_uy_chart_data.xml
+++ b/addons/l10n_uy/data/l10n_uy_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-    <menuitem id="account_reports_uy_statements_menu" name="Uruguay" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_uy_statements_menu" name="Uruguay" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <data noupdate="1">
         <record id="uy_chart_template" model="account.chart.template">
diff --git a/addons/l10n_vn/data/l10n_vn_chart_data.xml b/addons/l10n_vn/data/l10n_vn_chart_data.xml
index 12c48e18bc48e3345955a284b0237107582d486d..46e14a2b571f94d4e9d604603bf15ea8fc69d09b 100644
--- a/addons/l10n_vn/data/l10n_vn_chart_data.xml
+++ b/addons/l10n_vn/data/l10n_vn_chart_data.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
-<menuitem id="account_reports_vn_statements_menu" name="Vietnam" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+<menuitem id="account_reports_vn_statements_menu" name="Vietnam" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
 <data>
     <!-- Account Chart Templates -->
diff --git a/addons/l10n_za/data/account_chart_template_data.xml b/addons/l10n_za/data/account_chart_template_data.xml
index 652646a5d18d94abc77aa8ac346c535b3ed6a624..4925dbff7df1f823657ba3490c039d3e4b9bd29f 100644
--- a/addons/l10n_za/data/account_chart_template_data.xml
+++ b/addons/l10n_za/data/account_chart_template_data.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <odoo>
 
-    <menuitem id="account_reports_za_statements_menu" name="South Africa" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/>
+    <menuitem id="account_reports_za_statements_menu" name="South Africa" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
 
     <record id="default_chart_template" model="account.chart.template">
         <field name="name">South African Tax and Account Chart Template (by Paradigm Digital)</field>
diff --git a/addons/mail/models/ir_attachment.py b/addons/mail/models/ir_attachment.py
index c2dd7fe9f5bbb353e1665280a5f2d31ed3d57bcc..b0ceb6523e03a6e513e74f4b812d7c664c1bfdda 100644
--- a/addons/mail/models/ir_attachment.py
+++ b/addons/mail/models/ir_attachment.py
@@ -22,6 +22,8 @@ class IrAttachment(models.Model):
         if not self.res_model:
             return
         related_record = self.env[self.res_model].browse(self.res_id)
+        if not related_record.check_access_rights('write', raise_exception=False):
+            return
         # message_main_attachment_id field can be empty, that's why we compare to False;
         # we are just checking that it exists on the model before writing it
         if related_record and hasattr(related_record, 'message_main_attachment_id'):
diff --git a/addons/mrp_account/security/ir.model.access.csv b/addons/mrp_account/security/ir.model.access.csv
index 5762ae6cd24db190dcec3741e3eabeaeb9bc69b3..07da696c94de04dbebfe56b934be330ebe43a5d1 100644
--- a/addons/mrp_account/security/ir.model.access.csv
+++ b/addons/mrp_account/security/ir.model.access.csv
@@ -1,3 +1,5 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mrp_bom_invoice_bom_readonly,mrp.bom,mrp.model_mrp_bom,account.group_account_readonly,1,0,0,0
 access_mrp_bom_invoice_bom,mrp.bom,mrp.model_mrp_bom,account.group_account_invoice,1,0,0,0
+access_mrp_bom_line_invoice_bom_readonly,mrp.bom.line,mrp.model_mrp_bom_line,account.group_account_readonly,1,0,0,0
 access_mrp_bom_line_invoice_bom,mrp.bom.line,mrp.model_mrp_bom_line,account.group_account_invoice,1,0,0,0
diff --git a/addons/point_of_sale/views/pos_payment_method_views.xml b/addons/point_of_sale/views/pos_payment_method_views.xml
index 8dc36991f3cc03eab61c9a5de29741da32270de4..a388fcca62f1c205740e7f43b00c5cd4940200be 100644
--- a/addons/point_of_sale/views/pos_payment_method_views.xml
+++ b/addons/point_of_sale/views/pos_payment_method_views.xml
@@ -13,7 +13,7 @@
                     <group name="Payment methods">
                         <group>
                             <field name="hide_use_payment_terminal" invisible="1"/>
-                            <field name="receivable_account_id" groups="account.group_account_user" />
+                            <field name="receivable_account_id" groups="account.group_account_readonly" />
                             <field name="is_cash_count" />
                             <field name="cash_journal_id" attrs="{'invisible': [('is_cash_count', '=', False)], 'required': [('is_cash_count', '=', True)]}" />
                             <field name="split_transactions" groups="base.group_no_one" />
@@ -35,7 +35,7 @@
             <tree string="Payment Methods">
                 <field name="hide_use_payment_terminal" invisible="1"/>
                 <field name="name" />
-                <field name="receivable_account_id" groups="account.group_account_user"/>
+                <field name="receivable_account_id" groups="account.group_account_readonly"/>
                 <field name="is_cash_count" />
                 <field name="split_transactions" groups="base.group_no_one" />
                 <field name="use_payment_terminal" attrs="{'invisible': [('hide_use_payment_terminal', '=', True)]}" />
@@ -50,7 +50,7 @@
         <field name="arch" type="xml">
             <search string="Payment Methods">
                 <field name="name"/>
-                <field name="receivable_account_id" groups="account.group_account_user" />
+                <field name="receivable_account_id" groups="account.group_account_readonly" />
                 <group expand="1" string="Group By">
                     <filter name="group_by_receivable_account" string="Account" domain="[]"  context="{'group_by':'receivable_account_id'}"/>
                 </group>
diff --git a/addons/point_of_sale/views/pos_session_view.xml b/addons/point_of_sale/views/pos_session_view.xml
index f5370ad4a3ef801cae447e0ffa21d5fa5f6cc848..115178b61ba0c586068b74066b5673677cb8950b 100644
--- a/addons/point_of_sale/views/pos_session_view.xml
+++ b/addons/point_of_sale/views/pos_session_view.xml
@@ -53,7 +53,7 @@
                             icon="fa-bars"
                             string="Journal Items"
                             attrs="{'invisible':[('move_id', '=', False)]}"
-                            groups="account.group_account_user"
+                            groups="account.group_account_readonly"
                             >
                         </button>
                     </div>
@@ -65,7 +65,7 @@
                         <field name="user_id"/>
                         <field name="currency_id" invisible="1"/>
                         <field name="config_id"/>
-                        <field name="move_id" readonly="1" groups="account.group_account_user" />
+                        <field name="move_id" readonly="1" groups="account.group_account_readonly" />
                         <field name="start_at" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
                         <field name="stop_at" attrs="{'invisible' : [('state', '!=', 'closed')]}"/>
                     </group>
diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv
index 6784aa839e9d3d2459f8c2d913c45ea585fe955d..2435fd93bb5e92f5676db3e799da58c89833396c 100644
--- a/addons/purchase/security/ir.model.access.csv
+++ b/addons/purchase/security/ir.model.access.csv
@@ -1,10 +1,12 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_purchase_order,purchase.order,model_purchase_order,group_purchase_user,1,1,1,1
 access_purchase_order_manager,purchase.order,model_purchase_order,group_purchase_manager,1,1,1,1
+access_purchase_order_invoicing_payments_readonly,purchase.order,model_purchase_order,account.group_account_readonly,1,0,0,0
 access_purchase_order_invoicing_payments,purchase.order,model_purchase_order,account.group_account_invoice,1,1,0,0
 access_purchase_order_portal,purchase.order.portal,purchase.model_purchase_order,base.group_portal,1,0,0,0
 access_purchase_order_line,purchase.order.line user,model_purchase_order_line,group_purchase_user,1,1,1,1
 access_purchase_order_line_manager,purchase.order.line,model_purchase_order_line,group_purchase_manager,1,1,1,1
+access_purchase_order_line_invoicing_payments_readonly,purchase.order.line,model_purchase_order_line,account.group_account_readonly,1,0,0,0
 access_purchase_order_line_invoicing_payments,purchase.order.line,model_purchase_order_line,account.group_account_invoice,1,1,0,0
 access_purchase_order_line_portal,purchase.order.line.portal,purchase.model_purchase_order_line,base.group_portal,1,0,0,0
 access_account_tax_purchase_user,account.tax,account.model_account_tax,group_purchase_user,1,0,0,0
@@ -12,14 +14,14 @@ access_account_tax_purchase_user_manager,account.tax,account.model_account_tax,g
 access_product_product_purchase_user,product.product.purchase.user,product.model_product_product,group_purchase_user,1,0,0,0
 access_product_product_purchase_manager,product.product purchase_manager,product.model_product_product,purchase.group_purchase_manager,1,1,1,1
 access_product_template_purchase_user,product.template purchase_user,product.model_product_template,group_purchase_user,1,0,0,0
-access_account_move_purchase,account_move purchase,account.model_account_move,group_purchase_user,1,1,1,1
-access_account_move_purchase_manager,account_move purchase manager,account.model_account_move,group_purchase_manager,1,0,0,0
 access_account_fiscal_position_purchase_user,account.fiscal.position purchase,account.model_account_fiscal_position,group_purchase_user,1,0,0,0
 access_res_partner_purchase_user,res.partner purchase,base.model_res_partner,group_purchase_user,1,0,0,0
 access_account_journal,account.journal,account.model_account_journal,group_purchase_user,1,0,0,0
 access_account_journal_manager,account.journal,account.model_account_journal,group_purchase_manager,1,0,0,0
 access_account_move,account.move,account.model_account_move,group_purchase_user,1,0,0,0
 access_account_move_line,account.move.line,account.model_account_move_line,group_purchase_user,1,0,0,0
+access_account_move_manager,account.move,account.model_account_move,group_purchase_manager,1,1,1,1
+access_account_move_line_manager,account.move.line,account.model_account_move_line,group_purchase_manager,1,1,1,1
 access_account_analytic_line,account.analytic.line,account.model_account_analytic_line,group_purchase_user,1,0,0,0
 access_res_partner_purchase_manager,res.partner.purchase.manager,base.model_res_partner,group_purchase_manager,1,1,1,0
 access_uom_category_purchase_manager,uom.category purchase_manager,uom.model_uom_category,purchase.group_purchase_manager,1,1,1,1
diff --git a/addons/purchase/views/product_views.xml b/addons/purchase/views/product_views.xml
index 3bb683cfa22f66f029949551182d263dc92ff364..a3c470d528495ccadf4e9856767e9b43b56f2c92 100644
--- a/addons/purchase/views/product_views.xml
+++ b/addons/purchase/views/product_views.xml
@@ -62,7 +62,7 @@
             <field name="inherit_id" ref="account.view_category_property_form"/>
             <field name="arch" type="xml">
                 <field name="property_account_income_categ_id" position="before">
-                    <field name="property_account_creditor_price_difference_categ" domain="[('deprecated','=',False)]" groups="account.group_account_user"/>
+                    <field name="property_account_creditor_price_difference_categ" domain="[('deprecated','=',False)]" groups="account.group_account_readonly"/>
                 </field>
             </field>
         </record>
@@ -109,7 +109,7 @@
             <field name="inherit_id" ref="account.product_template_form_view"/>
             <field name="arch" type="xml">
                 <field name="property_account_expense_id" position="after">
-                    <field name="property_account_creditor_price_difference" domain="[('deprecated','=',False)]" attrs="{'readonly':[('purchase_ok', '=', 0)]}" groups="account.group_account_user"/>
+                    <field name="property_account_creditor_price_difference" domain="[('deprecated','=',False)]" attrs="{'readonly':[('purchase_ok', '=', 0)]}" groups="account.group_account_readonly"/>
                 </field>
             </field>
         </record>
diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv
index 1fd42da29789dc4f98533dc40139499ae43588f1..553ed2647ff5877b0557fa14b7ce78f35574a239 100644
--- a/addons/sale/security/ir.model.access.csv
+++ b/addons/sale/security/ir.model.access.csv
@@ -1,17 +1,21 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_sale_order,sale.order,model_sale_order,sales_team.group_sale_salesman,1,1,1,0
 access_sale_order_line,sale.order.line,model_sale_order_line,sales_team.group_sale_salesman,1,1,1,1
+access_sale_order_line_readonly,sale.order.line accountant,model_sale_order_line,account.group_account_readonly,1,0,0,0
 access_sale_order_line_accountant,sale.order.line accountant,model_sale_order_line,account.group_account_user,1,1,0,0
 access_sale_order_portal,sale.order.portal,sale.model_sale_order,base.group_portal,1,0,0,0
 access_sale_order_line_portal,sale.order.line.portal,sale.model_sale_order_line,base.group_portal,1,0,0,0
 access_account_move_salesman,account_move salesman,account.model_account_move,sales_team.group_sale_salesman,1,1,1,0
 access_account_move_manager,account_move manager,account.model_account_move,sales_team.group_sale_manager,1,1,1,1
+access_account_move_line_salesman,account_move_line salesman,account.model_account_move_line,sales_team.group_sale_salesman,1,1,1,0
+access_account_move__linemanager,account_move_line manager,account.model_account_move_line,sales_team.group_sale_manager,1,1,1,1
 access_account_payment_term_salesman,account_payment_term salesman,account.model_account_payment_term,sales_team.group_sale_salesman,1,0,0,0
 access_account_account_tag_sale_salesman,account.account.tag.sale.salesman,account.model_account_account_tag,sales_team.group_sale_salesman,1,0,0,0
 access_account_account_type_sale_salesman,account.account.type.sale.salesman,account.model_account_account_type,sales_team.group_sale_salesman,1,0,0,0
 access_account_analytic_tag_sale_salesman,account.analytic.tag.sale.salesman,analytic.model_account_analytic_tag,sales_team.group_sale_salesman,1,0,0,0
 access_account_analytic_account_salesman,account_analytic_account salesman,analytic.model_account_analytic_account,sales_team.group_sale_salesman,1,1,1,0
 access_sale_order_manager,sale.order.manager,model_sale_order,sales_team.group_sale_manager,1,1,1,1
+access_sale_order_readonly,sale.order.accountant,model_sale_order,account.group_account_readonly,1,0,0,0
 access_sale_order_accountant,sale.order.accountant,model_sale_order,account.group_account_user,1,1,0,0
 access_sale_report_salesman,sale.report,model_sale_report,sales_team.group_sale_salesman,1,1,1,0
 access_sale_report_manager,sale.report,model_sale_report,sales_team.group_sale_manager,1,1,1,1
@@ -32,8 +36,9 @@ access_product_supplierinfo_user,product.supplierinfo.user,product.model_product
 access_product_supplierinfo_sale_manager,product.supplierinfo salemanager,product.model_product_supplierinfo,sales_team.group_sale_manager,1,1,1,1
 access_product_pricelist_sale_manager,product.pricelist salemanager,product.model_product_pricelist,sales_team.group_sale_manager,1,1,1,1
 access_product_group_res_partner_sale_manager,res_partner group_sale_manager,base.model_res_partner,sales_team.group_sale_manager,1,1,1,0
-access_account_move_line_salesman,account.move.line invoice,account.model_account_move_line,sales_team.group_sale_salesman,1,0,0,0
+access_sale_order_invoicing_payments_readonly,sale.order,model_sale_order,account.group_account_readonly,1,0,0,0
 access_sale_order_invoicing_payments,sale.order,model_sale_order,account.group_account_invoice,1,1,0,0
+access_sale_order_line_invoicing_payments_readonly,sale.order.line,model_sale_order_line,account.group_account_readonly,1,0,0,0
 access_sale_order_line_invoicing_payments,sale.order.line,model_sale_order_line,account.group_account_invoice,1,1,0,0
 access_product_pricelist_item_sale_manager,product.pricelist.item salemanager,product.model_product_pricelist_item,sales_team.group_sale_manager,1,1,1,1
 access_product_template_sale_manager,product.template salemanager,model_product_template,sales_team.group_sale_manager,1,1,1,1
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 978798babf677735fbb5d151acc79414d0f2e178..edf762aca5176ecb3ff518ab51a8f0f16c902020 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -158,5 +158,34 @@
         <field name="model_id" ref="payment.model_payment_token"/>
         <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
     </record>
+
+    <!-- Multi - Salesmen invoice and account move assignation rules -->
+    <record id="account_invoice_rule_see_personal" model="ir.rule">
+        <field name="name">Personal Invoices</field>
+        <field name="model_id" ref="model_account_move"/>
+        <field name="domain_force">[('invoice_user_id', '=', user.id), ('type', '!=', 'entry')]</field>
+        <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
+    </record>
+
+    <record id="account_invoice_rule_see_all" model="ir.rule">
+        <field name="name">All Invoices</field>
+        <field name="model_id" ref="model_account_move"/>
+        <field name="domain_force">[('type', '!=', 'entry')]</field>
+        <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/>
+    </record>
+
+    <record id="account_invoice_line_rule_see_personal" model="ir.rule">
+        <field name="name">Personal Invoice Lines</field>
+        <field name="model_id" ref="model_account_move_line"/>
+        <field name="domain_force">[('invoice_user_id', '=', user.id), ('type', '!=', 'entry')]</field>
+        <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
+    </record>
+
+    <record id="account_invoice_line_rule_see_all" model="ir.rule">
+        <field name="name">All Invoice Lines</field>
+        <field name="model_id" ref="model_account_move_line"/>
+        <field name="domain_force">[('type', '!=', 'entry')]</field>
+        <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/>
+    </record>
 </data>
 </odoo>
diff --git a/addons/stock_account/security/ir.model.access.csv b/addons/stock_account/security/ir.model.access.csv
index 7fa47b0de0ec5ec7003c174acd9f9c6e698d8bff..bd56cc16f9af1378a6ae80ca40ff716b3bb8fad1 100644
--- a/addons/stock_account/security/ir.model.access.csv
+++ b/addons/stock_account/security/ir.model.access.csv
@@ -1,6 +1,8 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_account_account_stock_manager,account.account stock manager,account.model_account_account,stock.group_stock_manager,1,0,0,0
 access_account_journal_stock_manager,account.journal stock manager,account.model_account_journal,stock.group_stock_manager,1,0,0,0
+access_stock_picking_invoicing_payments_readonly,stock.picking,stock.model_stock_picking,account.group_account_readonly,1,0,0,0
 access_stock_picking_invoicing_payments,stock.picking,stock.model_stock_picking,account.group_account_invoice,1,1,1,0
+access_stock_move_invoicing_payments_readonly,stock.move,model_stock_move,account.group_account_readonly,1,0,0,0
 access_stock_move_invoicing_payments,stock.move,model_stock_move,account.group_account_invoice,1,1,1,0
 access_stock_valuation_layer,access_stock_valuation_layer,model_stock_valuation_layer,stock.group_stock_manager,1,1,1,0
diff --git a/addons/stock_account/views/product_views.xml b/addons/stock_account/views/product_views.xml
index a286dd75a195aab3935f993c066d3189fcd06dd6..ecf069633502325278b08f85e8c94bf86415c02a 100644
--- a/addons/stock_account/views/product_views.xml
+++ b/addons/stock_account/views/product_views.xml
@@ -18,7 +18,7 @@
             <field name="inherit_id" ref="account.view_category_property_form"/>
             <field name="arch" type="xml">
                 <group name="account_property" position="inside">
-                    <group name="account_stock_property" string="Account Stock Properties" groups="account.group_account_user">
+                    <group name="account_stock_property" string="Account Stock Properties" groups="account.group_account_readonly">
                         <field name="property_stock_account_input_categ_id" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}" />
                         <field name="property_stock_account_output_categ_id" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}" />
                         <field name="property_stock_valuation_account_id" options="{'no_create': True}" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}"/>
@@ -29,7 +29,7 @@
                     <group>
                         <group string="Inventory Valuation">
                             <field name="property_cost_method"/>
-                            <field name="property_valuation" groups="account.group_account_user,stock.group_stock_manager"/>
+                            <field name="property_valuation" groups="account.group_account_readonly,stock.group_stock_manager"/>
                         </group>
                     </group>
                 </group>
diff --git a/addons/stock_account/views/stock_account_views.xml b/addons/stock_account/views/stock_account_views.xml
index f7985a8137b805d3f4d2b40115b1c6aa75b95b41..dd3ddab59dc55a77c940bf1e91728e8391b3c4fc 100644
--- a/addons/stock_account/views/stock_account_views.xml
+++ b/addons/stock_account/views/stock_account_views.xml
@@ -8,7 +8,7 @@
             <field name="inherit_id" ref="stock.view_move_form"/>
             <field name="arch" type="xml">
                 <xpath expr="//div[@name='button_box']" position="inside" >
-                    <button name="action_get_account_moves" icon="fa-usd" class="oe_stat_button" string="Accounting Entries" type="object" groups="account.group_account_user"/>
+                    <button name="action_get_account_moves" icon="fa-usd" class="oe_stat_button" string="Accounting Entries" type="object" groups="account.group_account_readonly"/>
                 </xpath>
             </field>
         </record>
diff --git a/addons/website_crm_partner_assign/security/ir.model.access.csv b/addons/website_crm_partner_assign/security/ir.model.access.csv
index fa992b1efba1dcd8e6b1362a97a32298afb5787e..c400f632eee27e173fcec420bce83d6c8bd263ed 100644
--- a/addons/website_crm_partner_assign/security/ir.model.access.csv
+++ b/addons/website_crm_partner_assign/security/ir.model.access.csv
@@ -8,4 +8,5 @@ access_res_partner_grade_manager,res.partner.grade.manager,model_res_partner_gra
 access_res_partner_activation_user,res.partner.activation.user,model_res_partner_activation,base.group_user,1,0,0,0
 access_partner_activation_manager,res.partner.activation.manager,model_res_partner_activation,base.group_partner_manager,1,1,1,1
 partner_access_crm_lead,crm.lead,crm.model_crm_lead,base.group_portal,1,1,0,0
+access_res_partner_grade_invoicing_payment_readonly,res.partner.grade,model_res_partner_grade,account.group_account_readonly,1,0,0,0
 access_res_partner_grade_invoicing_payment,res.partner.grade,model_res_partner_grade,account.group_account_invoice,1,0,0,0
diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py
index e428fb68b9a3a5754c6525b4c15c9f806fb6924d..a4092160458bd504a4adfcf0ace439a5829d0794 100644
--- a/odoo/addons/base/models/res_users.py
+++ b/odoo/addons/base/models/res_users.py
@@ -1190,6 +1190,11 @@ class GroupsView(models.Model):
                 return (app, 'selection', gs.sorted('id'), category_name)
             # determine sequence order: a group appears after its implied groups
             order = {g: len(g.trans_implied_ids & gs) for g in gs}
+            # We want a selection for Accounting too. Auditor and Invoice are both
+            # children of Accountant, but the two of them make a full accountant
+            # so it makes no sense to have checkboxes.
+            if app.xml_id == 'base.module_category_accounting_accounting':
+                return (app, 'selection', gs.sorted(key=order.get), category_name)
             # check whether order is total, i.e., sequence orders are distinct
             if len(set(order.values())) == len(gs):
                 return (app, 'selection', gs.sorted(key=order.get), category_name)
diff --git a/odoo/tools/convert.py b/odoo/tools/convert.py
index 10b56b3fc1671802195985d99373528a96d7e4a8..c94e371106ee35ad4df45544b1e1a72b8d24d3a1 100644
--- a/odoo/tools/convert.py
+++ b/odoo/tools/convert.py
@@ -741,7 +741,6 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init',
         encoding: utf-8'''
     filename, _ext = os.path.splitext(os.path.basename(fname))
     model = filename.split('-')[0]
-
     reader = pycompat.csv_reader(io.BytesIO(csvcontent), quotechar='"', delimiter=',')
     fields = next(reader)