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' |