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