Commit 3d8091fe4994dead594de4db21f0a0c6a48e0f3c

Authored by ailsoncgt
1 parent 2c886a7e

Change permissions in file update #128 #129 #130

Showing 1 changed file with 8 additions and 3 deletions   Show diff stats
files/views.py
... ... @@ -5,7 +5,7 @@ from django.contrib import messages
5 5 from django.core.urlresolvers import reverse_lazy
6 6 from django.contrib.auth.mixins import LoginRequiredMixin
7 7 from rolepermissions.mixins import HasRoleMixin
8   -from rolepermissions.verifications import has_role
  8 +from rolepermissions.verifications import has_role, has_object_permission
9 9 from .forms import FileForm, UpdateFileForm
10 10 from .models import TopicFile
11 11 from .utils import mime_type_to_material_icons
... ... @@ -179,7 +179,12 @@ class UpdateFile(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.UpdateView)
179 179  
180 180 return context
181 181  
182   -
  182 + def dispatch(self, *args, **kwargs):
  183 + file = get_object_or_404(TopicFile, slug = self.kwargs.get('slug'))
  184 + if(not has_object_permission('edit_file', self.request.user, file) or not(self.request.user in file.topic.subject.professors.all())):
  185 + return self.handle_no_permission()
  186 + return super(UpdateFile, self).dispatch(*args, **kwargs)
  187 +
183 188 def form_valid(self, form):
184 189 self.object = form.save()
185 190  
... ... @@ -224,7 +229,7 @@ class DeleteFile(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.DeleteView)
224 229  
225 230 def dispatch(self, *args, **kwargs):
226 231 file = get_object_or_404(TopicFile, slug = self.kwargs.get('slug'))
227   - if(not (file.topic.owner == self.request.user) and not(has_role(self.request.user, 'system_admin')) ):
  232 + if(not(self.request.user in file.topic.subject.professors.all()) and not(has_role(self.request.user, 'system_admin'))):
228 233 return self.handle_no_permission()
229 234 return super(DeleteFile, self).dispatch(*args, **kwargs)
230 235  
... ...