Commit Graph

19 Commits (e01ce3d4c0196e47388a8864267119c115afb6eb)

Author SHA1 Message Date
Stefan Rijnhart e01ce3d4c0 [FIX] base_changeset: permission error in Pending Changes widget. 2023-07-03 13:24:17 +02:00
Mark Schuit 292da0f91e [FIX] base_changeset: permission errors on models and fields
Fixes

```
Traceback (most recent call last):
  File "/home/odoo/15.0/parts/server-tools/base_changeset/tests/test_changeset_flow.py", line 63, in test_new_changeset
self.partner.write({"name": "Y", "street": "street Y", "street2": "street2 Y"})
  File "/home/odoo/15.0/parts/odoo/odoo/addons/base/models/res_partner.py", line 603, in write
result = result and super(Partner, self).write(vals)
  File "/home/odoo/15.0/parts/server-tools/base_changeset/models/base.py", line 97, in write
if self._changeset_disabled():
  File "/home/odoo/15.0/parts/server-tools/base_changeset/models/base.py", line 111, in _changeset_disabled
if self._name not in self.models_to_track_changeset():
  File "<decorator-gen-123>", line 2, in models_to_track_changeset
  File "/home/odoo/15.0/parts/odoo/odoo/tools/cache.py", line 90, in lookup
value = d[key] = self.method(*args, **kwargs)
  File "/home/odoo/15.0/parts/server-tools/base_changeset/models/base.py", line 71, in models_to_track_changeset
models = self.env["changeset.field.rule"].search([]).mapped("model_id.model")
  File "/home/odoo/15.0/parts/odoo/odoo/models.py", line 5464, in mapped
recs = recs._fields[name].mapped(recs)
  File "/home/odoo/15.0/parts/odoo/odoo/fields.py", line 1180, in mapped
self.__get__(first(remaining), type(remaining))
  File "/home/odoo/15.0/parts/odoo/odoo/fields.py", line 1089, in __get__
record._fetch_field(self)
  File "/home/odoo/15.0/parts/odoo/odoo/models.py", line 3276, in _fetch_field
self._read(fnames)
  File "/home/odoo/15.0/parts/odoo/odoo/models.py", line 3290, in _read
self.check_access_rights('read')
  File "/home/odoo/15.0/parts/odoo/odoo/models.py", line 3547, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
  File "<decorator-gen-33>", line 2, in check
  File "/home/odoo/15.0/parts/odoo/odoo/tools/cache.py", line 90, in lookup
value = d[key] = self.method(*args, **kwargs)
  File "/home/odoo/15.0/parts/odoo/odoo/addons/base/models/ir_model.py", line 1820, in check
raise AccessError(msg)
odoo.exceptions.AccessError: You are not allowed to access 'Models' (ir.model) records.

This operation is allowed for the following groups:
- Administration/Access Rights
- Changeset Validations

Contact your administrator to request access if necessary.
```
2023-07-03 13:21:01 +02:00
Jasmin Solanki 3b556397c2 [MIG] base_changeset: Migration to 15.0 2022-11-09 11:51:29 +01:00
Stefan Rijnhart 5d31b7e0ea [FIX] base_changeset: no change for empty values on create
Regression of previous commit
2022-11-09 11:39:34 +01:00
Stefan Rijnhart 8557d1163f [RFR] base_changeset: adapt intercept of create to Odoo 14 cache changes 2022-11-09 11:39:34 +01:00
Stefan Rijnhart d77f2a803e [IMP] base_changeset: black, isort, prettier 2022-11-09 11:39:34 +01:00
Holger Brunn 47fbaeda11 [IMP] base_changeset: overhaul security 2022-11-09 11:39:34 +01:00
Holger Brunn b5e5940dd5 [ADD] base_changeset: Determine if a rule applies by an expression 2022-11-09 11:39:34 +01:00
Holger Brunn 9a21deb571 [IMP] base_changeset: Inhibit creating records with restricted fields too 2022-11-09 11:39:34 +01:00
Holger Brunn 09886ed786 [IMP] base_changeset: Make it impossible to set context key from outside 2022-11-09 11:39:34 +01:00
Stefan Rijnhart 717cb6c944 [FIX] base_changeset: fix caching
ormcache is used to minimize the number of times that the active changeset
rules are quered, but it was still missing in one important place.

In this module's tests, this reduces the number of calls to
`models_to_track_changeset` from 354 to 135 times, and the number of test
queries is reduced from 4069 to 3810.
2022-11-09 11:39:34 +01:00
oca-git-bot 841d6ca43f [IMP] update dotfiles 2022-11-09 11:39:34 +01:00
shams-emesa b3d4640dae [IMP] base_changeset: optionally prevent self validation 2022-11-09 11:39:34 +01:00
Stefan Rijnhart 2050f54fd4 [FIX] base_changeset: models may not have a `name` field
Fixes

```
bank.changeset_ids.name_get()
*** AttributeError: 'res.partner.bank' object has no attribute 'name'
```
2022-11-09 11:39:34 +01:00
Dariusz Kubiak 1fc53a4958 [FIX] base_changeset: fix write return type 2022-11-09 11:39:34 +01:00
Stefan Rijnhart d43b2c1eb8 [FIX] base_changeset: assign values for all computed fields 2022-11-09 11:39:34 +01:00
dsolanki 02923eaa6d [MIG] Migrate module base_changeset to v14. 2022-11-09 11:39:34 +01:00
dsolanki 617503f302 [IMP] base_changeset: isort, black, prettier. 2022-11-09 11:39:34 +01:00
Andrea c1e3fa0f19 [13.0][ADD] base_changeset 2022-11-09 11:39:34 +01:00