Skip to content

Commit

Permalink
Make sure current user is always in the set of editors #208
Browse files Browse the repository at this point in the history
  • Loading branch information
martinfilliau committed Jan 15, 2015
1 parent 05bbcb2 commit 9aba0ed
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
26 changes: 26 additions & 0 deletions talks/contributors/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -673,3 +673,29 @@ def test_edit_event_post_invalid(self):
self.assertEquals(saved_event.title, old_title)
self.assertEquals(saved_event.description, old_description)
self.assertTemplateUsed(response, "contributors/event_form.html")

def test_edit_remove_editor(self):
#create event and set user1 as an editor
event = factories.EventFactory.create()
event.editor_set.add(self.user)
event.save()

# emptying all the editors
data = {
'event-title': 'lkfjlfkds',
'event-description': 'dflksfoingf',
'event-group_type': '',
'event-booking_type': models.BOOKING_REQUIRED,
'event-audience': models.AUDIENCE_OXFORD,
'event-status': models.EVENT_IN_PREPARATION,
'event-start': VALID_DATE_STRING,
'event-end': VALID_DATE_STRING,
'event-editor_set': [],
}
response = self.client.post("/talks/id/%s/edit" % event.slug, data)
if response.context:
logging.info("Form errors: %s", response.context['event_form'].errors)
self.assertRedirects(response, "/talks/id/%s/" % event.slug)
result = Event.objects.get(slug=event.slug)
self.assertIn(self.user, result.editor_set.all())
self.assertTrue(result.user_can_edit(self.user))
3 changes: 3 additions & 0 deletions talks/contributors/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ def edit_event(request, event_slug):
if request.method == 'POST':
if form.is_valid():
event = form.save()
if request.user not in event.editor_set.all():
event.editor_set.add(request.user)
event.save()
event_updated.send(event.__class__, instance=event)
messages.success(request, "Talk was updated")
return redirect(event.get_absolute_url())
Expand Down

0 comments on commit 9aba0ed

Please sign in to comment.