Skip to content

Commit de16f48

Browse files
lef-adhocjjscarafia
authored andcommitted
[ADD] changes in user_has_groups
1 parent c90de92 commit de16f48

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

odoo_module_migrate/migration_scripts/migrate_170_180.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,25 @@ def replace_chatter_self_closing(match):
8484
logger.error(f"Error processing file {file}: {str(e)}")
8585

8686

87+
def replace_user_has_groups(
88+
logger, module_path, module_name, manifest_path, migration_steps, tools
89+
):
90+
files_to_process = tools.get_files(module_path, (".py"))
91+
replaces = {
92+
r"self\.user_has_groups\(\s*(['\"])([\w\.]+)\1\s*\)": r"self.env.user.has_group(\1\2\1)",
93+
r"self\.user_has_groups\(\s*(['\"])([^'\"]*[,!][^'\"]*?)\1\s*\)": r"self.env.user.has_groups(\1\2\1)",
94+
}
95+
96+
for file in files_to_process:
97+
try:
98+
tools._replace_in_file(file, replaces)
99+
except Exception as e:
100+
logger.error(f"Error processing file {file}: {str(e)}")
101+
102+
87103
class MigrationScript(BaseMigrationScript):
88104
_GLOBAL_FUNCTIONS = [
89105
replace_tree_with_list_in_views,
90106
replace_chatter_blocks,
107+
replace_user_has_groups,
91108
]

tests/data_result/module_170_180/models/res_partner.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,25 @@ class ResPartner(models.Model):
88

99
def example_method(self):
1010
self.env.ref('module_name.tree_view').write({'view_mode': 'list'})
11+
12+
def example_method_has_group(self):
13+
if self.env.user.has_group('base.group_user'):
14+
pass
15+
16+
if self.env.user.has_group("base.group_user"):
17+
pass
18+
19+
if self.env.user.has_groups("!base.group_user"):
20+
pass
21+
22+
if self.env.user.has_groups('base.group_user,base.group_manager'):
23+
pass
24+
25+
if self.env.user.has_groups("base.group_user,base.group_manager,base.group"):
26+
pass
27+
28+
if self.env.user.has_groups('base.group_user,!base.group_manager'):
29+
pass
30+
31+
if self.env.user.has_groups("base.group_user,!base.group_manager,!base.group"):
32+
pass

tests/data_template/module_170/models/res_partner.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,25 @@ class ResPartner(models.Model):
88

99
def example_method(self):
1010
self.env.ref('module_name.tree_view').write({'view_mode': 'tree'})
11+
12+
def example_method_has_group(self):
13+
if self.user_has_groups('base.group_user'):
14+
pass
15+
16+
if self.user_has_groups("base.group_user"):
17+
pass
18+
19+
if self.user_has_groups("!base.group_user"):
20+
pass
21+
22+
if self.user_has_groups('base.group_user,base.group_manager'):
23+
pass
24+
25+
if self.user_has_groups("base.group_user,base.group_manager,base.group"):
26+
pass
27+
28+
if self.user_has_groups('base.group_user,!base.group_manager'):
29+
pass
30+
31+
if self.user_has_groups("base.group_user,!base.group_manager,!base.group"):
32+
pass

0 commit comments

Comments
 (0)