Revision 8e1a5af5 snf-astakos-app/astakos/im/models.py

b/snf-astakos-app/astakos/im/models.py
68 68
    DEFAULT_USER_LEVEL, INVITATIONS_PER_LEVEL,
69 69
    AUTH_TOKEN_DURATION, EMAILCHANGE_ACTIVATION_DAYS, LOGGING_LEVEL,
70 70
    SITENAME, SERVICES, MODERATION_ENABLED, RESOURCES_PRESENTATION_DATA,
71
    PROJECT_MEMBER_JOIN_POLICIES, PROJECT_MEMBER_LEAVE_POLICIES)
71
    PROJECT_MEMBER_JOIN_POLICIES, PROJECT_MEMBER_LEAVE_POLICIES, PROJECT_ADMINS)
72 72
from astakos.im import settings as astakos_settings
73 73
from astakos.im.endpoints.qh import (
74 74
    register_users, send_quotas, qh_check_users, qh_get_quota_limits,
......
428 428
                                   content_type=get_content_type())
429 429
        self.user_permissions.remove(p)
430 430

  
431
    def is_project_admin(self, application_id=None):
432
        return self.uuid in PROJECT_ADMINS
433

  
431 434
    @property
432 435
    def invitation(self):
433 436
        try:
......
815 818
            return m.user_friendly_state_display()
816 819

  
817 820
    def non_owner_can_view(self, maybe_project):
821
        if self.is_project_admin():
822
            return True
818 823
        if maybe_project is None:
819 824
            return False
820 825
        project = maybe_project
......
1422 1427
        """
1423 1428
        Return projects accessed by specified user.
1424 1429
        """
1425
        participates_filters = Q(owner=user) | Q(applicant=user) | \
1426
                               Q(project__projectmembership__person=user)
1430
        if user.is_project_admin():
1431
            participates_filters = Q()
1432
        else:
1433
            participates_filters = Q(owner=user) | Q(applicant=user) | \
1434
                                   Q(project__projectmembership__person=user)
1427 1435

  
1428 1436
        return self.user_visible_by_chain(participates_filters).order_by('issue_date').distinct()
1429 1437

  
......
1612 1620
        except Project.DoesNotExist:
1613 1621
            return None
1614 1622

  
1623
    def can_be_approved(self):
1624
        return self.state == self.PENDING
1625

  
1626
    def can_be_dismissed(self):
1627
        return self.state == self.DENIED
1628

  
1615 1629
    def can_cancel(self):
1616 1630
        return self.state == self.PENDING
1617 1631

  

Also available in: Unified diff