Skip to content

Commit

Permalink
[ADD] changes in API to check access rights and rules v18
Browse files Browse the repository at this point in the history
  • Loading branch information
lef-adhoc committed Oct 29, 2024
1 parent 38e7a02 commit 1734786
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
21 changes: 21 additions & 0 deletions odoo_module_migrate/migration_scripts/migrate_170_180.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,30 @@ def replace_user_has_groups(
logger.error(f"Error processing file {file}: {str(e)}")


def replace_access_methods(
logger, module_path, module_name, manifest_path, migration_steps, tools
):
files_to_process = tools.get_files(module_path, (".py",))

replaces = {
r"\.check_access_rights\(['\"](\w+)['\"],\s*raise_exception=False\)": r".has_access('\1')",
r"\.check_access_rights\(['\"](\w+)['\"]\)": r".check_access('\1')",
r"\.check_access_rule\(['\"](\w+)['\"]\)": r".check_access('\1')",
r"_filter_access_rule\(['\"](\w+)['\"]\)": r"_filter_access('\1')",
r"_filter_access_rule_python\(['\"](\w+)['\"]\)": r"_filter_access('\1')",
}

for file in files_to_process:
try:
tools._replace_in_file(file, replaces)
except Exception as e:
logger.error(f"Error processing file {file}: {str(e)}")


class MigrationScript(BaseMigrationScript):
_GLOBAL_FUNCTIONS = [
replace_tree_with_list_in_views,
replace_chatter_blocks,
replace_user_has_groups,
replace_access_methods,
]
9 changes: 9 additions & 0 deletions tests/data_result/module_170_180/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,12 @@ def example_method_has_group(self):

if self.env.user.has_groups("base.group_user,!base.group_manager,!base.group"):
pass

def example_method_access(self):
self.env['account.move'].check_access('read')
self.env['account.move'].check_access('write')
self.env['account.move']._filter_access('read')
self.env['account.move']._filter_access('read')

if not self.env['account.move'].has_access('read'):
pass
9 changes: 9 additions & 0 deletions tests/data_template/module_170/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,12 @@ def example_method_has_group(self):

if self.user_has_groups("base.group_user,!base.group_manager,!base.group"):
pass

def example_method_access(self):
self.env['account.move'].check_access_rights('read')
self.env['account.move'].check_access_rule('write')
self.env['account.move']._filter_access_rule('read')
self.env['account.move']._filter_access_rule_python('read')

if not self.env['account.move'].check_access_rights('read', raise_exception=False):
pass

0 comments on commit 1734786

Please sign in to comment.