@@ -87,7 +87,7 @@ def replace_chatter_self_closing(match):
8787def replace_user_has_groups (
8888 logger , module_path , module_name , manifest_path , migration_steps , tools
8989):
90- files_to_process = tools .get_files (module_path , (".py" ))
90+ files_to_process = tools .get_files (module_path , (".py" , ))
9191 replaces = {
9292 r"self\.user_has_groups\(\s*(['\"])([\w\.]+)\1\s*\)" : r"self.env.user.has_group(\1\2\1)" ,
9393 r"self\.user_has_groups\(\s*(['\"])([^'\"]*[,!][^'\"]*?)\1\s*\)" : r"self.env.user.has_groups(\1\2\1)" ,
@@ -106,16 +106,74 @@ def replace_access_methods(
106106 files_to_process = tools .get_files (module_path , (".py" ,))
107107
108108 replaces = {
109+ # .check_access_rights('write', False) -> .has_access('write')
110+ r"\.check_access_rights\(['\"](\w+)['\"],\s*False\)" : r".has_access('\1')" ,
111+ # .check_access_rights('write', True) -> .check_access('write')
112+ r"\.check_access_rights\(['\"](\w+)['\"],\s*True\)" : r".check_access('\1')" ,
113+ # .check_access_rights('write', raise_exception=False) -> .has_access('write')
109114 r"\.check_access_rights\(['\"](\w+)['\"],\s*raise_exception=False\)" : r".has_access('\1')" ,
115+ # .check_access_rights(operation='write', raise_exception=False) -> .has_access('write')
116+ r"\.check_access_rights\(\s*operation\s*=\s*['\"](\w+)['\"],\s*raise_exception\s*=\s*False\s*\)" : r".has_access('\1')" ,
117+ # .check_access_rights(operation, raise_exception=False) -> .has_access(operation)
118+ r"\.check_access_rights\((\w+),\s*raise_exception=False\)" : r".has_access(\1)" ,
119+ # .check_access_rights(operation=operation, raise_exception=False) -> .has_access(operation)
120+ r"\.check_access_rights\(operation=(\w+),\s*raise_exception=False\)" : r".has_access(\1)" ,
121+ # .check_access_rights('write') -> .check_access('write')
110122 r"\.check_access_rights\(['\"](\w+)['\"]\)" : r".check_access('\1')" ,
123+ # .check_access_rights('write', raise_exception=True) -> .check_access('write')
124+ r"\.check_access_rights\(['\"](\w+)['\"],\s*raise_exception\s*=\s*True\)" : r".check_access('\1')" ,
125+ # .check_access_rights(operation='write') -> .check_access('write')
126+ r"\.check_access_rights\(operation=['\"](\w+)['\"]\)" : r".check_access('\1')" ,
127+ # .check_access_rights(operation) -> .check_access(operation)
128+ r"\.check_access_rights\((\w+)\)" : r".check_access(\1)" ,
129+ # .check_access_rights(operation=operation) -> .check_access(operation)
130+ r"\.check_access_rights\(operation=(\w+)\)" : r".check_access(\1)" ,
131+ # .check_access_rule('write') -> .check_access('write')
111132 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')" ,
133+ # .check_access_rule(operation='write') -> .check_access('write')
134+ r"\.check_access_rule\(operation=['\"](\w+)['\"]\)" : r".check_access('\1')" ,
135+ # .check_access_rule(operation) -> .check_access(operation)
136+ r"\.check_access_rule\((\w+)\)" : r".check_access(\1)" ,
137+ # .check_access_rule(operation=operation) -> .check_access(operation)
138+ r"\.check_access_rule\(operation=(\w+)\)" : r".check_access(\1)" ,
139+ # ._filter_access_rule('write') -> ._filter_access('write')
140+ r"\._filter_access_rule\(['\"](\w+)['\"]\)" : r"._filter_access('\1')" ,
141+ # ._filter_access_rule(operation='write') -> ._filter_access('write')
142+ r"\._filter_access_rule\(operation=['\"](\w+)['\"]\)" : r"._filter_access('\1')" ,
143+ # ._filter_access_rule(operation) -> ._filter_access(operation)
144+ r"\._filter_access_rule\((\w+)\)" : r"._filter_access(\1)" ,
145+ # ._filter_access_rule(operation=operation) -> ._filter_access(operation)
146+ r"\._filter_access_rule\(operation=(\w+)\)" : r"._filter_access(\1)" ,
147+ # ._filter_access_rule_python('write') -> ._filter_access('write')
148+ r"\._filter_access_rule_python\(['\"](\w+)['\"]\)" : r"._filter_access('\1')" ,
149+ # ._filter_access_rule_python(operation='write') -> ._filter_access('write')
150+ r"\._filter_access_rule_python\(operation=['\"](\w+)['\"]\)" : r"._filter_access('\1')" ,
151+ # ._filter_access_rule_python(operation) -> ._filter_access(operation)
152+ r"\._filter_access_rule_python\((\w+)\)" : r"._filter_access(\1)" ,
153+ # ._filter_access_rule_python(operation=operation) -> ._filter_access(operation)
154+ r"\._filter_access_rule_python\(operation=(\w+)\)" : r"._filter_access(\1)" ,
155+ # def check_access_rights(self, operation, raise_exception=True) -> def check_access(self, operation: str) -> None
156+ r"def\s+check_access_rights\s*\(\s*self\s*,\s*operation\s*,\s*raise_exception\s*=\s*True\s*\)" : r"def check_access(self, operation: str) -> None" ,
157+ # def check_access_rights(self, operation='read', raise_exception=True) -> def check_access(self, operation: str = 'read') -> None
158+ r"def\s+check_access_rights\s*\(\s*self\s*,\s*operation\s*=\s*['\"](\w+)['\"]\s*,\s*raise_exception\s*=\s*True\s*\)" : r"def check_access(self, operation: str = '\1') -> None" ,
159+ # def filter_access_rule pattern
160+ r"def\s+filter_access_rule\s*\(\s*self\s*,\s*operation\s*\)" : r"def filter_access(self, operation: str) -> None" ,
161+ r"def\s+filter_access_rule\s*\(\s*self\s*,\s*operation\s*=\s*['\"](\w+)['\"]s*\)" : r"def filter_access(self, operation: str = '\1') -> None" ,
162+ # def filter_access_rule_python pattern
163+ r"def\s+filter_access_rule_python\s*\(\s*self\s*,\s*operation\s*\)" : r"def filter_access(self, operation: str) -> None" ,
164+ r"def\s+filter_access_rule_python\s*\(\s*self\s*,\s*operation\s*=\s*['\"](\w+)['\"]\s*\)" : r"def filter_access(self, operation: str = '\1') -> None" ,
114165 }
115166
116167 for file in files_to_process :
117168 try :
118169 tools ._replace_in_file (file , replaces )
170+ # After replacement, check for remaining check_access_rights calls
171+ after_replace_content = tools ._read_content (file )
172+ if "check_access_rights" in after_replace_content :
173+ logger .warning (
174+ f"[18.0] check_access_rights() is deprecated. "
175+ f"Use instead .has_access() or .check_access(). File { file } "
176+ )
119177 except Exception as e :
120178 logger .error (f"Error processing file { file } : { str (e )} " )
121179
0 commit comments