23
23
def editors_check (user ):
24
24
return user .groups .filter (name = 'editors' ).exists ()
25
25
26
+ def viewers_check (user ):
27
+ return user .groups .filter (name = 'editors' ).exists () or user .groups .filter (name = 'viewers' ).exists ()
28
+
26
29
def unprivileged (request ):
27
30
return render (request , 'services/unprivileged.html' )
28
31
29
32
@login_required
33
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
30
34
def index (request ):
31
35
"""
32
36
Main index view of list of services; can have one GET parameter specifying
@@ -273,7 +277,7 @@ def update_service(request):
273
277
274
278
275
279
@login_required
276
- @user_passes_test (editors_check ,login_url = reverse_lazy ('services:unprivileged' ))
280
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
277
281
def export (request ):
278
282
"""
279
283
Shows form for selecting fields; when fields are selected, renders plain
@@ -420,6 +424,7 @@ def custom(request):
420
424
return render (request , 'services/export_choices.html' , context )
421
425
422
426
@login_required
427
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
423
428
def hosts (request , order_field = 'hostname' ):
424
429
# hosts = {}
425
430
hosts = collections .OrderedDict ()
@@ -468,6 +473,7 @@ def hosts(request, order_field='hostname'):
468
473
return render (request , 'services/hosts.html' , context )
469
474
470
475
@login_required
476
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
471
477
def hosts_by_service (request ):
472
478
s = ''
473
479
services = []
@@ -485,6 +491,7 @@ def hosts_by_service(request):
485
491
return render (request , 'services/hosts_by_service.html' , context )
486
492
487
493
@login_required
494
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
488
495
def people (request ):
489
496
people = []
490
497
# TODO this should not get ones that are deprecated
@@ -504,6 +511,7 @@ def people(request):
504
511
return render (request , 'services/people.html' , context )
505
512
506
513
@login_required
514
+ @user_passes_test (editors_check ,login_url = reverse_lazy ('services:unprivileged' ))
507
515
def edit_staff (request , staff_id ):
508
516
staff = Staff .objects .get (pk = staff_id )
509
517
if request .POST :
@@ -526,6 +534,7 @@ def edit_staff(request, staff_id):
526
534
527
535
528
536
@login_required
537
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
529
538
def metrics (request ):
530
539
start = None
531
540
end = None
@@ -587,7 +596,7 @@ def metrics(request):
587
596
588
597
589
598
@login_required
590
- @user_passes_test (editors_check ,login_url = reverse_lazy ('services:unprivileged' ))
599
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
591
600
def listing (request ):
592
601
"""
593
602
This is used for text dump of all services with fields separated by pipes;
@@ -614,7 +623,7 @@ def listing(request):
614
623
return response
615
624
616
625
@login_required
617
- @user_passes_test (editors_check ,login_url = reverse_lazy ('services:unprivileged' ))
626
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
618
627
def log_listing (request ):
619
628
"""
620
629
This is used for text dump of all log entries;
@@ -635,6 +644,7 @@ def make_log_entry(username, service, msg):
635
644
le .save ()
636
645
637
646
@login_required
647
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
638
648
def view_log (request ):
639
649
log = LogEntry .objects .all ().order_by ('-timestamp' )
640
650
context = {'page' : 'view_log' , 'log' : log ,
@@ -652,9 +662,8 @@ def edit_sorry(request):
652
662
context = {'app_name' : settings .APP_NAME }
653
663
return render (request , 'services/edit_sorry.html' , context )
654
664
655
- # event testing
656
665
@login_required
657
- @user_passes_test (editors_check ,login_url = reverse_lazy ('services:unprivileged' ))
666
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
658
667
def events (request ):
659
668
events = []
660
669
for e in Event .objects .order_by ('-created' ):
@@ -771,6 +780,7 @@ def do_pdf(template_src, context_dict):
771
780
return http .HttpResponse (result .getvalue (), mimetype = 'application/pdf' )
772
781
return http .HttpResponse ('pdf error! %s' % cgi .escape (html ))
773
782
783
+ @user_passes_test (viewers_check ,login_url = reverse_lazy ('services:unprivileged' ))
774
784
def make_pdf (request ):
775
785
services = []
776
786
for s in Service .objects .order_by ('name' ):
0 commit comments