From b44b6bb3075c2bedba31fc2d38f0c92661d84b4f Mon Sep 17 00:00:00 2001
From: Stauros Kroustouris <staurosk@noc.grnet.gr>
Date: Mon, 25 May 2015 12:06:40 +0300
Subject: [PATCH] remove lint errors and clean some files
---
accounts/admin.py | 21 +-
accounts/models.py | 13 +-
accounts/serializers.py | 8 -
accounts/views.py | 120 ++++++----
accounts/viewsets.py | 8 -
djangobackends/shibauthBackend.py | 5 +-
flowspec/admin.py | 26 +--
flowspec/forms.py | 26 +--
flowspec/tasks.py | 47 ++--
flowspec/templatetags/tofqdn.py | 2 -
flowspec/views.py | 370 ++++++++++++++++++++----------
11 files changed, 376 insertions(+), 270 deletions(-)
delete mode 100644 accounts/serializers.py
delete mode 100644 accounts/viewsets.py
diff --git a/accounts/admin.py b/accounts/admin.py
index ada7c4dc..04d6f9cc 100644
--- a/accounts/admin.py
+++ b/accounts/admin.py
@@ -18,20 +18,21 @@
#
from django.contrib import admin
-from accounts.models import *
-from django.contrib.auth.models import User
-from peers.models import *
-from django.conf import settings
-
-class UserPrAdmin(admin.ModelAdmin):
- list_display = ('user', 'peer')
-
-admin.site.register(UserProfile, UserPrAdmin)
from django import forms
from django.core.urlresolvers import reverse
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
+
from tinymce.widgets import TinyMCE
+from accounts.models import UserProfile
+
+
+class UserPrAdmin(admin.ModelAdmin):
+ list_display = ('user', 'peer')
+
+admin.site.register(UserProfile, UserPrAdmin)
+
+
class TinyMCEFlatPageAdmin(FlatPageAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
@@ -43,4 +44,4 @@ class TinyMCEFlatPageAdmin(FlatPageAdmin):
return super(TinyMCEFlatPageAdmin, self).formfield_for_dbfield(db_field, **kwargs)
admin.site.unregister(FlatPage)
-admin.site.register(FlatPage, TinyMCEFlatPageAdmin)
\ No newline at end of file
+admin.site.register(FlatPage, TinyMCEFlatPageAdmin)
diff --git a/accounts/models.py b/accounts/models.py
index d1441588..0976e2b1 100644
--- a/accounts/models.py
+++ b/accounts/models.py
@@ -19,24 +19,23 @@
from django.db import models
from django.contrib.auth.models import User
-from peers.models import *
+from peers.models import Peer
class UserProfile(models.Model):
user = models.OneToOneField(User)
peer = models.ForeignKey(Peer)
-
+
class Meta:
permissions = (
- ("overview", "Can see registered users and rules"),
- )
+ ("overview", "Can see registered users and rules"),
+ )
-
def __unicode__(self):
- return "%s:%s" %(self.user.username, self.peer.peer_name)
+ return "%s:%s" % (self.user.username, self.peer.peer_name)
def get_address_space(self):
networks = self.domain.networks.all()
if not networks:
return False
- return networks
\ No newline at end of file
+ return networks
diff --git a/accounts/serializers.py b/accounts/serializers.py
deleted file mode 100644
index 27eff549..00000000
--- a/accounts/serializers.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from rest_framework import serializers
-from django.contrib.auth.models import User
-
-
-class UserSerializer(serializers.HyperlinkedModelSerializer):
- class Meta:
- model = User
- fields = ('url', 'username', 'email', 'is_staff')
diff --git a/accounts/views.py b/accounts/views.py
index 8909aa96..a86b74e4 100644
--- a/accounts/views.py
+++ b/accounts/views.py
@@ -16,84 +16,110 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-
+from django import forms
from django.conf import settings
from django.core.mail import send_mail
from django.contrib.sites.models import Site
-from django.shortcuts import render_to_response
-from django.template.context import RequestContext
+from django.contrib.auth.models import User
+from django.shortcuts import render
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
-from accounts.models import *
-from peers.models import *
-from flowspec.forms import *
-from registration.models import RegistrationProfile
-from registration.views import activate as registration_activate
from django.views.decorators.cache import never_cache
+from accounts.models import UserProfile
+from peers.models import Peer
+from flowspec.forms import UserProfileForm
+from registration.models import RegistrationProfile
+
+
@never_cache
def activate(request, activation_key):
account = None
if request.method == "GET":
- activation_key = activation_key.lower() # Normalize before trying anything with it.
- context = RequestContext(request)
+ activation_key = activation_key.lower() # Normalize before trying anything with it.
try:
rp = RegistrationProfile.objects.get(activation_key=activation_key)
-
+
except RegistrationProfile.DoesNotExist:
- return render_to_response("registration/activate.html",
- { 'account': account,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS },
- context_instance=context)
+ return render(
+ request,
+ 'registration/activate.html',
+ {
+ 'account': account,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
+ }
+ )
try:
userProfile = rp.user.get_profile()
except UserProfile.DoesNotExist:
- return render_to_response("registration/activate.html",
- { 'account': account,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS },
- context_instance=context)
-
+ return render(
+ request,
+ 'registration/activate.html',
+ {
+ 'account': account,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
+ }
+ )
+
form = UserProfileForm(instance=userProfile)
form.fields['user'] = forms.ModelChoiceField(queryset=User.objects.filter(pk=rp.user.pk), empty_label=None)
form.fields['peer'] = forms.ModelChoiceField(queryset=Peer.objects.all(), empty_label=None)
-
- return render_to_response("registration/activate_edit.html",
- { 'account': account,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
- 'form': form },
- context_instance=context)
-
+
+ return render(
+ request,
+ 'registration/activate_edit.html',
+ {
+ 'account': account,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
+ 'form': form
+ },
+ )
+
if request.method == "POST":
- context = RequestContext(request)
request_data = request.POST.copy()
try:
user = User.objects.get(pk=request_data['user'])
up = user.get_profile()
up.peer = Peer.objects.get(pk=request_data['peer'])
up.save()
-
+
except:
- return render_to_response("registration/activate_edit.html",
- { 'account': account,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
- },
- context_instance=context)
- activation_key = activation_key.lower() # Normalize before trying anything with it.
+ return render(
+ request,
+ 'registration/activate_edit.html',
+ {
+ 'account': account,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
+ },
+ )
+ activation_key = activation_key.lower() # Normalize before trying anything with it.
try:
rp = RegistrationProfile.objects.get(activation_key=activation_key)
account = RegistrationProfile.objects.activate_user(activation_key)
- except Exception as e:
+ except Exception:
pass
-
+
if account:
# A user has been activated
- email = render_to_string("registration/activation_complete.txt",
- {"site": Site.objects.get_current(),
- "user": account})
- send_mail(_("%sUser account activated") % settings.EMAIL_SUBJECT_PREFIX,
- email, settings.SERVER_EMAIL, [account.email])
- context = RequestContext(request)
- return render_to_response("registration/activate.html",
- { 'account': account,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS },
- context_instance=context)
\ No newline at end of file
+ email = render_to_string(
+ request,
+ 'registration/activation_complete.txt',
+ {
+ 'site': Site.objects.get_current(),
+ 'user': account
+ }
+ )
+ send_mail(
+ _("%sUser account activated") % settings.EMAIL_SUBJECT_PREFIX,
+ email,
+ settings.SERVER_EMAIL,
+ [account.email]
+ )
+ return render(
+ request,
+ 'registration/activate.html',
+ {
+ 'account': account,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS
+ },
+ )
diff --git a/accounts/viewsets.py b/accounts/viewsets.py
deleted file mode 100644
index 09dea852..00000000
--- a/accounts/viewsets.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from rest_framework import viewsets
-from django.contrib.auth.models import User
-from accounts.serializers import UserSerializer
-
-
-class UserViewSet(viewsets.ModelViewSet):
- queryset = User.objects.all()
- serializer_class = UserSerializer
diff --git a/djangobackends/shibauthBackend.py b/djangobackends/shibauthBackend.py
index 57f7770e..94649333 100644
--- a/djangobackends/shibauthBackend.py
+++ b/djangobackends/shibauthBackend.py
@@ -17,9 +17,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+from django.contrib.auth.models import User
-from django.contrib.auth.models import User, UserManager, Permission, Group
-from django.conf import settings
class shibauthBackend:
def authenticate(self, **kwargs):
@@ -43,7 +42,7 @@ class shibauthBackend:
try:
user = User.objects.get(username__exact=username)
# The user did not exist. Create one with no privileges
- except:
+ except:
user = User.objects.create_user(username, mail, None)
user.first_name = firstname
user.last_name = lastname
diff --git a/flowspec/admin.py b/flowspec/admin.py
index 5c19e39e..501c7546 100644
--- a/flowspec/admin.py
+++ b/flowspec/admin.py
@@ -18,23 +18,21 @@
#
from django.contrib import admin
-from flowspec.models import *
-from accounts.models import *
+from flowspec.models import MatchPort, MatchDscp, MatchProtocol, FragmentType, ThenAction, Route
+from accounts.models import UserProfile
from utils import proxy as PR
from tasks import *
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from peers.models import *
from flowspec.forms import *
-import datetime
-from django.conf import settings
from longerusername.forms import UserCreationForm, UserChangeForm
class RouteAdmin(admin.ModelAdmin):
form = RouteForm
actions = ['deactivate']
-
+
def deactivate(self, request, queryset):
queryset = queryset.filter(status='ACTIVE')
response = batch_delete.delay(queryset, reason="ADMININACTIVE")
@@ -52,23 +50,23 @@ class RouteAdmin(admin.ModelAdmin):
def has_delete_permission(self, request, obj=None):
return False
- list_display = ('name', 'status', 'applier' , 'applier_peer', 'get_match', 'get_then', 'response', "expires", "comments")
+ list_display = ('name', 'status', 'applier', 'applier_peer', 'get_match', 'get_then', 'response', "expires", "comments")
fieldsets = [
- (None, {'fields': ['name','applier']}),
- ("Match", {'fields': ['source', 'sourceport', 'destination', 'destinationport', 'port']}),
+ (None, {'fields': ['name', 'applier']}),
+ ("Match", {'fields': ['source', 'sourceport', 'destination', 'destinationport', 'port']}),
('Advanced Match Statements', {'fields': ['dscp', 'fragmenttype', 'icmpcode', 'icmptype', 'packetlength', 'protocol', 'tcpflag'], 'classes': ['collapse']}),
- ("Then", {'fields': ['then' ]}),
- ("Expires", {'fields': ['expires' ]}),
- (None, {'fields': ['comments',]}),
-
+ ("Then", {'fields': ['then']}),
+ ("Expires", {'fields': ['expires']}),
+ (None, {'fields': ['comments', ]}),
+
]
-
class UserProfileInline(admin.StackedInline):
model = UserProfile
-
+
+
class UserProfileAdmin(UserAdmin):
add_form = UserCreationForm
form = UserChangeForm
diff --git a/flowspec/forms.py b/flowspec/forms.py
index 39d0f4e6..8d3494da 100644
--- a/flowspec/forms.py
+++ b/flowspec/forms.py
@@ -140,7 +140,7 @@ class RouteForm(forms.ModelForm):
if broadcast_error:
error_text = _('Malformed address format. Cannot be ...0/32')
raise forms.ValidationError(error_text)
-
+
def clean_expires(self):
date = self.cleaned_data['expires']
if date:
@@ -152,22 +152,17 @@ class RouteForm(forms.ModelForm):
def clean(self):
if self.errors:
- raise forms.ValidationError(_('Errors in form. Please review and fix them: %s'%", ".join(self.errors)))
+ raise forms.ValidationError(_('Errors in form. Please review and fix them: %s'%", ".join(self.errors)))
name = self.cleaned_data.get('name', None)
source = self.cleaned_data.get('source', None)
sourceports = self.cleaned_data.get('sourceport', None)
ports = self.cleaned_data.get('port', None)
- fragmenttypes = self.cleaned_data.get('fragmenttype', None)
then = self.cleaned_data.get('then', None)
destination = self.cleaned_data.get('destination', None)
destinationports = self.cleaned_data.get('destinationport', None)
protocols = self.cleaned_data.get('protocol', None)
user = self.cleaned_data.get('applier', None)
- try:
- issuperuser = self.data['issuperuser']
- su = User.objects.get(username=issuperuser)
- except:
- issuperuser = None
+ issuperuser = self.data.get('issuperuser')
peer = user.get_profile().peer
networks = peer.networks.all()
if issuperuser:
@@ -223,7 +218,7 @@ class RouteForm(forms.ModelForm):
if ports:
route_pk_list=get_matchingport_route_pks(ports, existing_routes)
if route_pk_list:
- existing_routes = existing_routes.filter(pk__in=route_pk_list)
+ existing_routes = existing_routes.filter(pk__in=route_pk_list)
else:
existing_routes = existing_routes.filter(port=None)
for route in existing_routes:
@@ -233,11 +228,12 @@ class RouteForm(forms.ModelForm):
raise forms.ValidationError('Found an exact %s rule, %s with destination prefix %s<br>To avoid overlapping try editing rule <a href=\'%s\'>%s</a>' %(route.status, route.name, route.destination, existing_url, route.name))
return self.cleaned_data
+
class ThenPlainForm(forms.ModelForm):
# action = forms.CharField(initial='rate-limit')
class Meta:
model = ThenAction
-
+
def clean_action_value(self):
action_value = self.cleaned_data['action_value']
if action_value:
@@ -257,18 +253,17 @@ class ThenPlainForm(forms.ModelForm):
raise forms.ValidationError(_('Cannot select something other than rate-limit'))
else:
return self.cleaned_data["action"]
-
+
class PortPlainForm(forms.ModelForm):
# action = forms.CharField(initial='rate-limit')
class Meta:
model = MatchPort
-
+
def clean_port(self):
port = self.cleaned_data['port']
if port:
try:
- p = int(port)
if int(port) > 65535 or int(port) < 0:
raise forms.ValidationError(_('Port should be < 65535 and >= 0'))
return "%s" %self.cleaned_data["port"]
@@ -279,12 +274,14 @@ class PortPlainForm(forms.ModelForm):
else:
raise forms.ValidationError(_('Cannot be empty'))
+
def value_list_to_list(valuelist):
vl = []
for val in valuelist:
vl.append(val[0])
return vl
+
def get_matchingport_route_pks(portlist, routes):
route_pk_list = []
ports_value_list = value_list_to_list(portlist.values_list('port').order_by('port'))
@@ -294,6 +291,7 @@ def get_matchingport_route_pks(portlist, routes):
route_pk_list.append(route.pk)
return route_pk_list
+
def get_matchingprotocol_route_pks(protocolist, routes):
route_pk_list = []
protocols_value_list = value_list_to_list(protocolist.values_list('protocol').order_by('protocol'))
@@ -301,4 +299,4 @@ def get_matchingprotocol_route_pks(protocolist, routes):
rsp = value_list_to_list(route.protocol.all().values_list('protocol').order_by('protocol'))
if rsp and rsp == protocols_value_list:
route_pk_list.append(route.pk)
- return route_pk_list
\ No newline at end of file
+ return route_pk_list
diff --git a/flowspec/tasks.py b/flowspec/tasks.py
index 6ad2abbc..28c502d1 100644
--- a/flowspec/tasks.py
+++ b/flowspec/tasks.py
@@ -28,16 +28,14 @@ from django.conf import settings
import datetime
from django.core.mail import send_mail
from django.template.loader import render_to_string
-from django.core.urlresolvers import reverse
import os
from celery.exceptions import TimeLimitExceeded, SoftTimeLimitExceeded
-
-
LOG_FILENAME = os.path.join(settings.LOG_FILE_LOCATION, 'celery_jobs.log')
-#FORMAT = '%(asctime)s %(levelname)s: %(message)s'
-#logging.basicConfig(format=FORMAT)
+
+# FORMAT = '%(asctime)s %(levelname)s: %(message)s'
+# logging.basicConfig(format=FORMAT)
formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')
logger = logging.getLogger(__name__)
@@ -74,7 +72,8 @@ def add(route, callback=None):
route.status = "ERROR"
route.response = "Error"
route.save()
- announce("[%s] Rule add: %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
+ announce("[%s] Rule add: %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
+
@task(ignore_result=True)
def edit(route, callback=None):
@@ -103,7 +102,7 @@ def edit(route, callback=None):
route.status = "ERROR"
route.response = "Error"
route.save()
- announce("[%s] Rule edit: %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
+ announce("[%s] Rule edit: %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
@task(ignore_result=True)
@@ -137,7 +136,8 @@ def delete(route, **kwargs):
route.status = "ERROR"
route.response = "Error"
route.save()
- announce("[%s] Suspending rule : %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
+ announce("[%s] Suspending rule : %s - Result: %s"%(route.applier, route.name, route.response), route.applier)
+
# May not work in the first place... proxy is not aware of Route models
@task
@@ -164,22 +164,24 @@ def batch_delete(routes, **kwargs):
route.response = response
route.expires = datetime.date.today()
route.save()
- announce("[%s] Rule removal: %s%s- Result %s" %(route.applier, route.name, reason_text, response), route.applier)
+ announce("[%s] Rule removal: %s%s- Result %s" % (route.applier, route.name, reason_text, response), route.applier)
else:
return False
+
#@task(ignore_result=True)
def announce(messg, user):
messg = str(messg)
username = user.get_profile().peer.peer_tag
b = beanstalkc.Connection()
b.use(settings.POLLS_TUBE)
- tube_message = json.dumps({'message': messg, 'username':username})
+ tube_message = json.dumps({'message': messg, 'username': username})
b.put(tube_message)
b.close()
+
@task
-def check_sync(route_name=None, selected_routes = []):
+def check_sync(route_name=None, selected_routes=[]):
from flowspec.models import Route, MatchPort, MatchDscp, ThenAction
if not selected_routes:
routes = Route.objects.all()
@@ -196,6 +198,7 @@ def check_sync(route_name=None, selected_routes = []):
if route.status != 'EXPIRED':
route.check_sync()
+
@task(ignore_result=True)
def notify_expired():
from flowspec.models import *
@@ -229,25 +232,3 @@ def notify_expired():
logger.info("Exception: %s"%e)
pass
logger.info('Expiration notification process finished')
-
-#def delete(route):
-#
-# applier = PR.Applier(route_object=route)
-# commit, response = applier.apply(configuration=applier.delete_routes())
-# if commit:
-# rows = queryset.update(is_online=False, is_active=False)
-# queryset.update(response="Successfully removed route from network")
-# self.message_user(request, "Successfully removed %s routes from network" % rows)
-# else:
-# self.message_user(request, "Could not remove routes from network")
-# if commit:
-# is_online = False
-# is_active = False
-# response = "Successfully removed route from network"
-# else:
-# is_online = False
-# is_active = True
-# route.is_online = is_online
-# route.is_active = is_active
-# route.response = response
-# route.save()
\ No newline at end of file
diff --git a/flowspec/templatetags/tofqdn.py b/flowspec/templatetags/tofqdn.py
index 7b83fb13..4518ae38 100644
--- a/flowspec/templatetags/tofqdn.py
+++ b/flowspec/templatetags/tofqdn.py
@@ -1,6 +1,4 @@
from django import template
-from django.utils.safestring import mark_safe
-from django.utils.encoding import force_unicode
import socket
register = template.Library()
diff --git a/flowspec/views.py b/flowspec/views.py
index 120d597d..d1250acb 100644
--- a/flowspec/views.py
+++ b/flowspec/views.py
@@ -17,22 +17,16 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-import urllib2
-import socket
import json
from django import forms
-from django.views.decorators.csrf import csrf_exempt
-from django.core import urlresolvers
-from django.core import serializers
from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout
from django.contrib.sites.models import Site
from django.contrib.auth.models import User
-from django.http import HttpResponseRedirect, HttpResponseForbidden, HttpResponse
-from django.shortcuts import get_object_or_404, render_to_response
-from django.core.context_processors import request
+from django.http import HttpResponseRedirect, HttpResponse
+from django.shortcuts import get_object_or_404, render_to_response, render
from django.template.context import RequestContext
-from django.template.loader import get_template, render_to_string
+from django.template.loader import render_to_string
from django.utils.translation import ugettext as _
from django.core.urlresolvers import reverse
from django.contrib import messages
@@ -50,7 +44,6 @@ from peers.models import *
from registration.models import RegistrationProfile
from copy import deepcopy
-from utils.decorators import shib_required
from django.views.decorators.cache import never_cache
from django.conf import settings
@@ -60,8 +53,8 @@ import datetime
import os
LOG_FILENAME = os.path.join(settings.LOG_FILE_LOCATION, 'celery_jobs.log')
-#FORMAT = '%(asctime)s %(levelname)s: %(message)s'
-#logging.basicConfig(format=FORMAT)
+# FORMAT = '%(asctime)s %(levelname)s: %(message)s'
+# logging.basicConfig(format=FORMAT)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(clientip)s %(user)s: %(message)s')
logger = logging.getLogger(__name__)
@@ -70,14 +63,26 @@ handler = logging.FileHandler(LOG_FILENAME)
handler.setFormatter(formatter)
logger.addHandler(handler)
+
@login_required
def user_routes(request):
user_routes = Route.objects.filter(applier=request.user)
- return render_to_response('user_routes.html', {'routes': user_routes},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'user_routes.html',
+ {
+ 'routes': user_routes
+ },
+ )
+
def welcome(request):
- return render_to_response('welcome.html', context_instance=RequestContext(request))
+ return render(
+ request,
+ 'welcome.html',
+ {}
+ )
+
@login_required
@never_cache
@@ -87,25 +92,48 @@ def dashboard(request):
peer = request.user.get_profile().peer
except UserProfile.DoesNotExist:
error = "User <strong>%s</strong> does not belong to any peer or organization. It is not possible to create new firewall rules.<br>Please contact Helpdesk to resolve this issue" % request.user.username
- return render_to_response('error.html', {'error': error}, context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error
+ }
+ )
if peer:
- peer_members = UserProfile.objects.filter(peer=peer)
- users = [prof.user for prof in peer_members]
- group_routes = Route.objects.filter(applier__in=users).order_by('-expires')[:10]
- if request.user.is_superuser:
- group_routes = Route.objects.all().order_by('-expires')[:10]
- return render_to_response('dashboard.html', {'routes': group_routes},
- context_instance=RequestContext(request))
+ peer_members = UserProfile.objects.filter(peer=peer)
+ users = [prof.user for prof in peer_members]
+ group_routes = Route.objects.filter(applier__in=users).order_by('-expires')[:10]
+ if request.user.is_superuser:
+ group_routes = Route.objects.all().order_by('-expires')[:10]
+ return render(
+ request,
+ 'dashboard.html',
+ {
+ 'routes': group_routes
+ },
+ )
+
@login_required
@never_cache
def group_routes(request):
try:
- peer = request.user.get_profile().peer
+ request.user.get_profile().peer
except UserProfile.DoesNotExist:
error = "User <strong>%s</strong> does not belong to any peer or organization. It is not possible to create new firewall rules.<br>Please contact Helpdesk to resolve this issue" % request.user.username
- return render_to_response('error.html', {'error': error}, context_instance=RequestContext(request))
- return render_to_response('user_routes.html', context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error
+ }
+ )
+ return render(
+ request,
+ 'user_routes.html',
+ {}
+ )
+
@login_required
@never_cache
@@ -115,13 +143,17 @@ def group_routes_ajax(request):
peer = request.user.get_profile().peer
except UserProfile.DoesNotExist:
error = "User <strong>%s</strong> does not belong to any peer or organization. It is not possible to create new firewall rules.<br>Please contact Helpdesk to resolve this issue" % request.user.username
- return render_to_response('error.html', {'error': error}, context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {'error': error}
+ )
if peer:
- peer_members = UserProfile.objects.filter(peer=peer)
- users = [prof.user for prof in peer_members]
- group_routes = Route.objects.filter(applier__in=users)
- if request.user.is_superuser:
- group_routes = Route.objects.all()
+ peer_members = UserProfile.objects.filter(peer=peer)
+ users = [prof.user for prof in peer_members]
+ group_routes = Route.objects.filter(applier__in=users)
+ if request.user.is_superuser:
+ group_routes = Route.objects.all()
jresp = {}
routes = build_routes_json(group_routes)
jresp['aaData'] = routes
@@ -138,11 +170,11 @@ def overview_routes_ajax(request):
error = "User <strong>%s</strong> does not belong to any peer or organization. It is not possible to create new firewall rules.<br>Please contact Helpdesk to resolve this issue" % request.user.username
return render_to_response('error.html', {'error': error}, context_instance=RequestContext(request))
if peer:
- peer_members = UserProfile.objects.filter(peer=peer)
- users = [prof.user for prof in peer_members]
- group_routes = Route.objects.filter(applier__in=users)
- if request.user.is_superuser or request.user.has_perm('accounts.overview'):
- group_routes = Route.objects.all()
+ peer_members = UserProfile.objects.filter(peer=peer)
+ users = [prof.user for prof in peer_members]
+ group_routes = Route.objects.filter(applier__in=users)
+ if request.user.is_superuser or request.user.has_perm('accounts.overview'):
+ group_routes = Route.objects.all()
jresp = {}
routes = build_routes_json(group_routes)
jresp['aaData'] = routes
@@ -223,13 +255,13 @@ def add_route(request):
if not request.user.is_superuser:
form.fields['then'] = forms.ModelMultipleChoiceField(queryset=ThenAction.objects.filter(action__in=settings.UI_USER_THEN_ACTIONS).order_by('action'), required=True)
form.fields['protocol'] = forms.ModelMultipleChoiceField(queryset=MatchProtocol.objects.filter(protocol__in=settings.UI_USER_PROTOCOLS).order_by('protocol'), required=False)
- return render_to_response(
+ return render(
+ request,
'apply.html',
{
'form': form,
'applier': applier
- },
- context_instance=RequestContext(request)
+ }
)
@@ -247,14 +279,6 @@ def edit_route(request, route_slug):
('Insufficient rights to edit rule %s') % (route_slug)
)
return HttpResponseRedirect(reverse("group-routes"))
-# if route_edit.status == "ADMININACTIVE" :
-# messages.add_message(request, messages.WARNING,
-# "Administrator has disabled editing of rule %s" %(route_slug))
-# return HttpResponseRedirect(reverse("group-routes"))
-# if route_edit.status == "EXPIRED" :
-# messages.add_message(request, messages.WARNING,
-# "Cannot edit the expired rule %s. Contact helpdesk to enable it" %(route_slug))
-# return HttpResponseRedirect(reverse("group-routes"))
if route_edit.status == 'PENDING':
messages.add_message(
request,
@@ -370,9 +394,20 @@ def user_profile(request):
peers = Peer.objects.all()
except UserProfile.DoesNotExist:
error = "User <strong>%s</strong> does not belong to any peer or organization. It is not possible to create new firewall rules.<br>Please contact Helpdesk to resolve this issue" % user.username
- return render_to_response('error.html', {'error': error}, context_instance=RequestContext(request))
- return render_to_response('profile.html', {'user': user, 'peers':peers},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {'error': error}
+ )
+ return render(
+ request,
+ 'profile.html',
+ {
+ 'user': user,
+ 'peers': peers
+ },
+ )
+
@never_cache
def user_login(request):
@@ -390,27 +425,28 @@ def user_login(request):
lastname = lookupShibAttr(settings.SHIB_LASTNAME, request.META)
mail = lookupShibAttr(settings.SHIB_MAIL, request.META)
entitlement = lookupShibAttr(settings.SHIB_ENTITLEMENT, request.META)
- #organization = request.META['HTTP_SHIB_HOMEORGANIZATION']
if settings.SHIB_AUTH_ENTITLEMENT in entitlement.split(";"):
has_entitlement = True
if not has_entitlement:
error_entitlement = True
-# if not organization:
-# error_orgname = True
if not mail:
error_mail = True
if error_username:
error = _("Your idP should release the HTTP_EPPN attribute towards this service<br>")
-# if error_orgname:
-# error = error + _("Your idP should release the HTTP_SHIB_HOMEORGANIZATION attribute towards this service<br>")
if error_entitlement:
error = error + _("Your idP should release an appropriate HTTP_SHIB_EP_ENTITLEMENT attribute towards this service<br>")
if error_mail:
error = error + _("Your idP should release the HTTP_SHIB_INETORGPERSON_MAIL attribute towards this service")
if error_username or error_orgname or error_entitlement or error_mail:
- return render_to_response('error.html', {'error': error, "missing_attributes": True},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error,
+ "missing_attributes": True
+ },
+ )
try:
if settings.SHIB_SLUGIFY_USERNAME:
username = slugify(username)
@@ -426,9 +462,7 @@ def user_login(request):
if user is not None:
try:
- peer = user.get_profile().peer
-# peer = Peer.objects.get(domain_name=organization)
-# up = UserProfile.objects.get_or_create(user=user,peer=peer)
+ user.get_profile().peer
except:
form = UserProfileForm()
form.fields['user'] = forms.ModelChoiceField(queryset=User.objects.filter(pk=user.pk), empty_label=None)
@@ -437,99 +471,157 @@ def user_login(request):
if not user_exists:
user_activation_notify(user)
if user.is_active:
- login(request, user)
- return HttpResponseRedirect(reverse("dashboard"))
+ login(request, user)
+ return HttpResponseRedirect(reverse("dashboard"))
else:
error = _("User account <strong>%s</strong> is pending activation. Administrators have been notified and will activate this account within the next days. <br>If this account has remained inactive for a long time contact your technical coordinator or GRNET Helpdesk") %user.username
- return render_to_response('error.html', {'error': error, 'inactive': True},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error,
+ 'inactive': True
+ },
+ )
else:
error = _("Something went wrong during user authentication. Contact your administrator")
- return render_to_response('error.html', {'error': error,},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {'error': error},
+ )
except User.DoesNotExist as e:
- error = _("Invalid login procedure. Error: %s" %e)
- return render_to_response('error.html', {'error': error,},
- context_instance=RequestContext(request))
- # Return an 'invalid login' error message.
-# return HttpResponseRedirect(reverse("user-routes"))
+ error = _("Invalid login procedure. Error: %s" % e)
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error
+ },
+ )
+
def user_activation_notify(user):
current_site = Site.objects.get_current()
peer = user.get_profile().peer
-
# Email subject *must not* contain newlines
# TechCs will be notified about new users.
# Platform admins will activate the users.
- subject = render_to_string('registration/activation_email_subject.txt',
- { 'site': current_site })
+ subject = render_to_string(
+ 'registration/activation_email_subject.txt',
+ {
+ 'site': current_site
+ }
+ )
subject = ''.join(subject.splitlines())
registration_profile = RegistrationProfile.objects.create_profile(user)
- message = render_to_string('registration/activation_email.txt',
- { 'activation_key': registration_profile.activation_key,
- 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
- 'site': current_site,
- 'user': user })
+ message = render_to_string(
+ 'registration/activation_email.txt',
+ {
+ 'activation_key': registration_profile.activation_key,
+ 'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
+ 'site': current_site,
+ 'user': user
+ }
+ )
if settings.NOTIFY_ADMIN_MAILS:
admin_mails = settings.NOTIFY_ADMIN_MAILS
- send_new_mail(settings.EMAIL_SUBJECT_PREFIX + subject,
- message, settings.SERVER_EMAIL,
- admin_mails, [])
-
+ send_new_mail(
+ settings.EMAIL_SUBJECT_PREFIX + subject,
+ message,
+ settings.SERVER_EMAIL,
+ admin_mails,
+ []
+ )
# Mail to domain techCs plus platform admins (no activation hash sent)
- subject = render_to_string('registration/activation_email_peer_notify_subject.txt',
- { 'site': current_site,
- 'peer': peer })
+ subject = render_to_string(
+ 'registration/activation_email_peer_notify_subject.txt',
+ {
+ 'site': current_site,
+ 'peer': peer
+ }
+ )
subject = ''.join(subject.splitlines())
- message = render_to_string('registration/activation_email_peer_notify.txt',
- { 'user': user,
- 'peer': peer })
- send_new_mail(settings.EMAIL_SUBJECT_PREFIX + subject,
- message, settings.SERVER_EMAIL,
- get_peer_techc_mails(user), [])
+ message = render_to_string(
+ 'registration/activation_email_peer_notify.txt',
+ {
+ 'user': user,
+ 'peer': peer
+ }
+ )
+ send_new_mail(
+ settings.EMAIL_SUBJECT_PREFIX + subject,
+ message,
+ settings.SERVER_EMAIL,
+ get_peer_techc_mails(user), [])
+
@login_required
@never_cache
def add_rate_limit(request):
if request.method == "GET":
form = ThenPlainForm()
- return render_to_response('add_rate_limit.html', {'form': form,},
- context_instance=RequestContext(request))
-
+ return render(
+ request,
+ 'add_rate_limit.html',
+ {
+ 'form': form,
+ },
+ )
else:
form = ThenPlainForm(request.POST)
if form.is_valid():
- then=form.save(commit=False)
- then.action_value = "%sk"%then.action_value
+ then = form.save(commit=False)
+ then.action_value = "%sk" % then.action_value
then.save()
response_data = {}
- response_data['pk'] = "%s" %then.pk
- response_data['value'] = "%s:%s" %(then.action, then.action_value)
- return HttpResponse(json.dumps(response_data), mimetype='application/json')
+ response_data['pk'] = "%s" % then.pk
+ response_data['value'] = "%s:%s" % (then.action, then.action_value)
+ return HttpResponse(
+ json.dumps(response_data),
+ mimetype='application/json'
+ )
else:
- return render_to_response('add_rate_limit.html', {'form': form,},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'add_rate_limit.html',
+ {
+ 'form': form,
+ },
+ )
+
@login_required
@never_cache
def add_port(request):
if request.method == "GET":
form = PortPlainForm()
- return render_to_response('add_port.html', {'form': form,},
- context_instance=RequestContext(request))
-
+ return render(
+ 'add_port.html',
+ {
+ 'form': form,
+ },
+ )
else:
form = PortPlainForm(request.POST)
if form.is_valid():
- port=form.save()
+ port = form.save()
response_data = {}
- response_data['value'] = "%s" %port.pk
- response_data['text'] = "%s" %port.port
- return HttpResponse(json.dumps(response_data), mimetype='application/json')
+ response_data['value'] = "%s" % port.pk
+ response_data['text'] = "%s" % port.port
+ return HttpResponse(
+ json.dumps(response_data),
+ mimetype='application/json'
+ )
else:
- return render_to_response('add_port.html', {'form': form,},
- context_instance=RequestContext(request))
+ return render(
+ 'add_port.html',
+ {
+ 'form': form,
+ },
+ )
+
@never_cache
def selectinst(request):
@@ -537,10 +629,16 @@ def selectinst(request):
request_data = request.POST.copy()
user = request_data['user']
try:
- existingProfile = UserProfile.objects.get(user=user)
+ UserProfile.objects.get(user=user)
error = _("Violation warning: User account is already associated with an institution.The event has been logged and our administrators will be notified about it")
- return render_to_response('error.html', {'error': error, 'inactive': True},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error,
+ 'inactive': True
+ },
+ )
except UserProfile.DoesNotExist:
pass
@@ -549,12 +647,25 @@ def selectinst(request):
userprofile = form.save()
user_activation_notify(userprofile.user)
error = _("User account <strong>%s</strong> is pending activation. Administrators have been notified and will activate this account within the next days. <br>If this account has remained inactive for a long time contact your technical coordinator or GRNET Helpdesk") %userprofile.user.username
- return render_to_response('error.html', {'error': error, 'inactive': True},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'error.html',
+ {
+ 'error': error,
+ 'inactive': True
+ },
+ )
else:
form.fields['user'] = forms.ModelChoiceField(queryset=User.objects.filter(pk=user.pk), empty_label=None)
form.fields['institution'] = forms.ModelChoiceField(queryset=Peer.objects.all(), empty_label=None)
- return render_to_response('registration/select_institution.html', {'form': form}, context_instance=RequestContext(request))
+ return render(
+ request,
+ 'registration/select_institution.html',
+ {
+ 'form': form
+ }
+ )
+
@never_cache
def overview(request):
@@ -562,15 +673,26 @@ def overview(request):
if user.is_authenticated():
if user.has_perm('accounts.overview'):
users = User.objects.all()
- return render_to_response('overview/index.html', {'users': users},
- context_instance=RequestContext(request))
+ return render(
+ request,
+ 'overview/index.html',
+ {
+ 'users': users
+ },
+ )
else:
- violation=True
- return render_to_response('overview/index.html', {'violation': violation},
- context_instance=RequestContext(request))
+ violation = True
+ return render(
+ request,
+ 'overview/index.html',
+ {
+ 'violation': violation
+ },
+ )
else:
return HttpResponseRedirect(reverse("altlogin"))
+
@login_required
@never_cache
def user_logout(request):
@@ -580,7 +702,7 @@ def user_logout(request):
@never_cache
def load_jscript(request, file):
- long_polling_timeout = int(settings.POLL_SESSION_UPDATE)*1000 + 10000
+ long_polling_timeout = int(settings.POLL_SESSION_UPDATE) * 1000 + 10000
return render_to_response('%s.js' % file, {'timeout': long_polling_timeout}, context_instance=RequestContext(request), mimetype="text/javascript")
--
GitLab