Add Group Member policy

This commit is contained in:
Jens Langhammer
2019-03-10 19:32:18 +01:00
parent 364f040b36
commit e4baf8c21e
3 changed files with 54 additions and 1 deletions

View File

@ -393,6 +393,21 @@ class DebugPolicy(Policy):
verbose_name = _('Debug Policy')
verbose_name_plural = _('Debug Policies')
class GroupMembershipPolicy(Policy):
"""Policy to check if the user is member in a certain group"""
group = models.ForeignKey('Group', on_delete=models.CASCADE)
form = 'passbook.core.forms.policies.GroupMembershipPolicyForm'
def passes(self, user: User) -> Union[bool, Tuple[bool, str]]:
return self.group.user_set.filter(pk=user.pk).exists()
class Meta:
verbose_name = _('Group Membership Policy')
verbose_name_plural = _('Group Membership Policies')
class Invitation(UUIDModel):
"""Single-use invitation link"""