Skip to content

Commit 512b69b

Browse files
committed
[ADD] changes in API to check access rights and rules v18
1 parent 38e7a02 commit 512b69b

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

odoo_module_migrate/migration_scripts/migrate_170_180.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,30 @@ def replace_user_has_groups(
100100
logger.error(f"Error processing file {file}: {str(e)}")
101101

102102

103+
def replace_access_methods(
104+
logger, module_path, module_name, manifest_path, migration_steps, tools
105+
):
106+
files_to_process = tools.get_files(module_path, (".py"))
107+
108+
replaces = {
109+
r"\.check_access_rights\(['\"](\w+)['\"],\s*raise_exception=False\)": r".has_access('\1')",
110+
r"\.check_access_rights\(['\"](\w+)['\"]\)": r".check_access('\1')",
111+
r"\.check_access_rule\(['\"](\w+)['\"]\)": r".check_access('\1')",
112+
r"_filter_access_rule\(['\"](\w+)['\"]\)": r"_filter_access('\1')",
113+
r"_filter_access_rule_python\(['\"](\w+)['\"]\)": r"_filter_access('\1')",
114+
}
115+
116+
for file in files_to_process:
117+
try:
118+
tools._replace_in_file(file, replaces)
119+
except Exception as e:
120+
logger.error(f"Error processing file {file}: {str(e)}")
121+
122+
103123
class MigrationScript(BaseMigrationScript):
104124
_GLOBAL_FUNCTIONS = [
105125
replace_tree_with_list_in_views,
106126
replace_chatter_blocks,
107127
replace_user_has_groups,
128+
replace_access_methods,
108129
]

tests/data_result/module_170_180/models/res_partner.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,12 @@ def example_method_has_group(self):
3030

3131
if self.env.user.has_groups("base.group_user,!base.group_manager,!base.group"):
3232
pass
33+
34+
def example_method_access(self):
35+
self.env['account.move'].check_access('read')
36+
self.env['account.move'].check_access('write')
37+
self.env['account.move']._filter_access('read')
38+
self.env['account.move']._filter_access('read')
39+
40+
if not self.env['account.move'].has_access('read'):
41+
pass

tests/data_template/module_170/models/res_partner.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,12 @@ def example_method_has_group(self):
3030

3131
if self.user_has_groups("base.group_user,!base.group_manager,!base.group"):
3232
pass
33+
34+
def example_method_access(self):
35+
self.env['account.move'].check_access_rights('read')
36+
self.env['account.move'].check_access_rule('write')
37+
self.env['account.move']._filter_access_rule('read')
38+
self.env['account.move']._filter_access_rule_python('read')
39+
40+
if not self.env['account.move'].check_access_rights('read', raise_exception=False):
41+
pass

0 commit comments

Comments
 (0)