31 lines
		
	
	
	
		
			914 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			914 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from guardian.shortcuts import assign_perm
 | |
| 
 | |
| 
 | |
| class AssignPermissionsMixin(object):
 | |
|     permissions = tuple()
 | |
|     user = None
 | |
|     obj = None
 | |
|     kwargs = dict()
 | |
| 
 | |
|     def assign_permissions(self, user):
 | |
|         for permission in self.permissions:
 | |
|             assign_perm(permission, user, self)
 | |
| 
 | |
|     # def save(self, *args, **kwargs):
 | |
|     #     self.kwargs = kwargs
 | |
|     #     self.get_objs()
 | |
| 
 | |
|     #     create = False
 | |
|     #     if not self.pk:
 | |
|     #         create = True
 | |
| 
 | |
|     #     super(AssignPermissionsMixin, self).save(*args, **kwargs)
 | |
| 
 | |
|     #     if create:
 | |
|     #         self.assign_permissions()
 | |
| 
 | |
|     # def get_objs(self):
 | |
|     #     self.user = self.kwargs.pop('user', None)
 | |
|     #     self.obj = self.kwargs.pop('obj', None)
 | |
|     #     assert self.user, 'Se necesita el parámetro user para poder asignar los permisos'
 | |
|     #     assert self.obj, 'Se necesita el parámetro obj para poder asignar los permisos'
 |