"""passbook group models models""" from django.db import models from django.utils.translation import gettext as _ from passbook.core.models import Group, Policy from passbook.policies.struct import PolicyRequest, PolicyResult 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.policies.group.forms.GroupMembershipPolicyForm' def passes(self, request: PolicyRequest) -> PolicyResult: return PolicyResult(self.group.user_set.filter(pk=request.user.pk).exists()) class Meta: verbose_name = _('Group Membership Policy') verbose_name_plural = _('Group Membership Policies')