Metatron_Student_ERP/fix_perms.py

34 lines
1.4 KiB
Python

import re
with open('addons/education_lms/security/security.xml', 'r') as f:
text = f.read()
# I need to restore the original domain AND add perm_read="True"
# Let's replace the whole Student Course Access rule.
new_course_rule = """<record id="rule_lms_course_student" model="ir.rule">
<field name="name">Student Course Access</field>
<field name="model_id" ref="model_education_lms_course"/>
<field name="domain_force">[
('state', 'in', ['published', 'closed']),
('program_id', 'in', user.student_ids.mapped('program_id').ids),
('academic_year_id', 'in', user.student_ids.mapped('academic_year_id').ids),
'|', ('term_id', '=', False), ('term_id', 'in', user.student_ids.mapped('academic_term_id').ids),
'|', ('batch_id', '=', False), ('batch_id', 'in', user.student_ids.mapped('batch_id').ids),
]</field>
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>"""
text = re.sub(
r'<record id="rule_lms_course_student" model="ir.rule">.*?</record>',
new_course_rule,
text,
flags=re.DOTALL
)
with open('addons/education_lms/security/security.xml', 'w') as f:
f.write(text)