protect schedule edit views
This commit is contained in:
		
							parent
							
								
									06ff53e73c
								
							
						
					
					
						commit
						d6a59f2e4f
					
				
					 1 changed files with 16 additions and 0 deletions
				
			
		|  | @ -1,6 +1,8 @@ | ||||||
| from django.http import Http404 | from django.http import Http404 | ||||||
| from django.shortcuts import render, get_object_or_404, redirect | from django.shortcuts import render, get_object_or_404, redirect | ||||||
| 
 | 
 | ||||||
|  | from django.contrib.auth.decorators import login_required | ||||||
|  | 
 | ||||||
| from symposion.schedule.forms import SlotEditForm | from symposion.schedule.forms import SlotEditForm | ||||||
| from symposion.schedule.models import Schedule, Day, Slot | from symposion.schedule.models import Schedule, Day, Slot | ||||||
| from symposion.schedule.timetable import TimeTable | from symposion.schedule.timetable import TimeTable | ||||||
|  | @ -8,26 +10,35 @@ from symposion.schedule.timetable import TimeTable | ||||||
| 
 | 
 | ||||||
| def schedule_detail(request, slug=None): | def schedule_detail(request, slug=None): | ||||||
|     qs = Schedule.objects.all() |     qs = Schedule.objects.all() | ||||||
|  |      | ||||||
|     if slug is None: |     if slug is None: | ||||||
|         schedule = next(iter(qs), None) |         schedule = next(iter(qs), None) | ||||||
|         if schedule is None: |         if schedule is None: | ||||||
|             raise Http404() |             raise Http404() | ||||||
|     else: |     else: | ||||||
|         schedule = get_object_or_404(qs, slug=slug) |         schedule = get_object_or_404(qs, slug=slug) | ||||||
|  |      | ||||||
|     ctx = { |     ctx = { | ||||||
|         "schedule": schedule, |         "schedule": schedule, | ||||||
|     } |     } | ||||||
|     return render(request, "schedule/schedule_detail.html", ctx) |     return render(request, "schedule/schedule_detail.html", ctx) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @login_required | ||||||
| def schedule_edit(request, slug=None): | def schedule_edit(request, slug=None): | ||||||
|  |      | ||||||
|  |     if not request.user.is_staff: | ||||||
|  |         raise Http404() | ||||||
|  |      | ||||||
|     qs = Schedule.objects.all() |     qs = Schedule.objects.all() | ||||||
|  |      | ||||||
|     if slug is None: |     if slug is None: | ||||||
|         schedule = next(iter(qs), None) |         schedule = next(iter(qs), None) | ||||||
|         if schedule is None: |         if schedule is None: | ||||||
|             raise Http404() |             raise Http404() | ||||||
|     else: |     else: | ||||||
|         schedule = get_object_or_404(qs, slug=slug) |         schedule = get_object_or_404(qs, slug=slug) | ||||||
|  |      | ||||||
|     days_qs = Day.objects.filter(schedule=schedule) |     days_qs = Day.objects.filter(schedule=schedule) | ||||||
|     days = [TimeTable(day) for day in days_qs] |     days = [TimeTable(day) for day in days_qs] | ||||||
|     form = SlotEditForm() |     form = SlotEditForm() | ||||||
|  | @ -39,7 +50,12 @@ def schedule_edit(request, slug=None): | ||||||
|     return render(request, "schedule/schedule_edit.html", ctx) |     return render(request, "schedule/schedule_edit.html", ctx) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @login_required | ||||||
| def schedule_slot_edit(request, slot_pk): | def schedule_slot_edit(request, slot_pk): | ||||||
|  |      | ||||||
|  |     if not request.user.is_staff: | ||||||
|  |         raise Http404() | ||||||
|  |      | ||||||
|     slot = get_object_or_404(Slot, pk=slot_pk) |     slot = get_object_or_404(Slot, pk=slot_pk) | ||||||
|     form = SlotEditForm(request.POST) |     form = SlotEditForm(request.POST) | ||||||
|      |      | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 James Tauber
						James Tauber