Coverage for src / mesh / views / model_proxy / review_proxy.py: 62%
21 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-10 09:11 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-10 09:11 +0000
1from __future__ import annotations
3from ...models.review_models import Review
4from ...views import model_proxy
5from .model_proxy import RoleModelProxy
8class ReviewProxy(RoleModelProxy):
9 """
10 Proxy for the `Review` model with restricted data according to the user role.
11 """
13 model = Review
14 _instance: Review
16 @property
17 def reviewer(self):
18 if self._role_handler.check_rights("can_access_review_author", self._instance):
19 return str(self._instance.reviewer)
21 return "**** ****"
23 @property
24 def version(self):
25 if not self._role_handler.check_rights("can_access_version", self._instance.version):
26 return None
28 return model_proxy.submission_version_proxy.SubmissionVersionProxy(
29 self._instance.version, self._role_handler
30 )
32 @property
33 def additional_files(self):
34 files = self._instance.additional_files.all()
35 return [f for f in files if self._role_handler.check_rights("can_access_review_file", f)]