from django.views.generic import View
from django.views.generic.base import TemplateView
from django.shortcuts import render
+from django.utils.decorators import method_decorator
+from django.contrib.auth.decorators import login_required
from plugins.lists.simplelist import SimpleList
from plugins.hazelnut import Hazelnut
class DashboardView(TemplateView):
template_name = "dashboard.html"
+
+ #This view requires login
+ @method_decorator(login_required)
+ def dispatch(self, *args, **kwargs):
+ return super(DashboardView, self).dispatch(*args, **kwargs)
def get_context_data(self, **kwargs):
# We might have slices on different registries with different user accounts
# DEPRECATED # context.update(page.prelude_env())
# DEPRECATED # return context
-
-
-# View for my_account form
-def my_account(request):
- return render(request, 'my_account.html', {
- #'form': form,
- 'topmenu_items': topmenu_items('My Account', request),
- 'username': the_user (request)
- })
-
# View for platforms
class PlatformsView(TemplateView):
template_name = "platforms.html"
def get_context_data(self, **kwargs):
page = Page(self.request)
- network_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
+ #network_query = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
+ network_query = Query().get('local:platform').select('platform','platform_longname','gateway_type')
page.enqueue_query(network_query)
page.expose_js_metadata()
return context
+
+
# View for 1 platform and its details
class PlatformView(TemplateView):
template_name = "platform.html"
return context
+
+@login_required
+# View for my_account form
+def my_account(request):
+ return render(request, 'my_account.html', {
+ #'form': form,
+ 'topmenu_items': topmenu_items('My Account', request),
+ 'username': the_user (request)
+ })
+
+
+@login_required
#my_acc form value processing
def acc_process(request):
# getting the user_id from the session [now hardcoded]
def register_4m_f4f(request):
errors = []
+
+ authorities_query = Query.get('authority').filter_by('authority_hrn', 'included', ['ple.inria', 'ple.upmc']).select('name', 'authority_hrn')
+ #authorities_query = Query.get('authority').select('authority_hrn')
+ authorities = execute_query(request, authorities_query)
+
if request.method == 'POST':
#get_email = PendingUser.objects.get(email)
reg_fname = request.POST.get('firstname', '')
reg_lname = request.POST.get('lastname', '')
reg_aff = request.POST.get('affiliation','')
+ reg_auth = request.POST.get('authority_hrn', '')
reg_email = request.POST.get('email','').lower()
#POST value validation
errors.append('Affiliation may contain only letters, numbers, spaces and @/./+/-/_ characters.')
#return HttpResponse("Only Letters, Numbers and _ is allowed in Affiliation")
#return render(request, 'register_4m_f4f.html')
+ # XXX validate authority hrn !!
if PendingUser.objects.filter(email__iexact=reg_email):
errors.append('Email already registered.Please provide a new email address.')
#return HttpResponse("Email Already exists")
#b.save()
if not errors:
b = PendingUser(first_name=reg_fname, last_name=reg_lname, affiliation=reg_aff,
+ authority_hrn=reg_auth,
email=reg_email, password=request.POST['password'], keypair=keypair)
b.save()
return render(request, 'user_register_complete.html')
'firstname': request.POST.get('firstname', ''),
'lastname': request.POST.get('lastname', ''),
'affiliation': request.POST.get('affiliation', ''),
+ 'authority_hrn': request.POST.get('authority_hrn', ''),
'email': request.POST.get('email', ''),
'password': request.POST.get('password', ''),
+ 'authorities': authorities
})
})
-
+@login_required
def slice_request(request):
if request.method == 'POST': # If the form has been submitted...
form = SliceRequestForm(request.POST) # A form bound to the POST data
for user in pending_users:
auth_hrn = user.authority_hrn
- if not auth_hrn:
- auth_hrn = "fed4fire.upmc" # XXX HARDCODED
request = {}
request['type'] = 'user'