diff --git a/coldfront/core/project/models.py b/coldfront/core/project/models.py index b3c4f1290..fb8fb7dad 100644 --- a/coldfront/core/project/models.py +++ b/coldfront/core/project/models.py @@ -9,6 +9,7 @@ from model_utils.models import TimeStampedModel from simple_history.models import HistoricalRecords +from coldfront.core.department.models import DepartmentProject from coldfront.core.field_of_science.models import FieldOfScience from coldfront.core.utils.common import import_from_settings @@ -214,6 +215,14 @@ def user_permissions(self, user): if self.pi.id == user.id: permissions.append(ProjectPermission.PI) + + # if the user is an approver in a department connected to the project, + # give them user permissions + department = DepartmentProject.objects.get(project=self).department + for parent_department in department.parents.filter(org_tree='Research Computing Storage Billing'): + if user in parent_department.useraffiliation_set.filter(role='approver'): + permissions.append(ProjectPermission.USER) + return permissions def has_perm(self, user, perm):