23 lines
		
	
	
		
			746 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			746 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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')
 | 
