+import requests
import json
import time
import re
from unfold.loginrequired import LoginRequiredAutoLogoutView
-from portal.actions import create_pending_project, create_pending_join, sfa_add_authority, authority_add_pis, is_pi
+from portal.actions import create_pending_project, create_pending_join, sfa_add_authority, authority_add_pis, is_pi, getAuthorities
from portal.models import PendingProject, PendingJoin
from myslice.theme import ThemeView
class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView):
template_name = 'projectrequest_view.html'
- def getAuthorities(self, request):
- if self.theme == 'fed4fire':
- authorities_query = Query.get('myslice:authority').select('name', 'authority_hrn')
- else:
- authorities_query = Query.get('authority').select('name', 'authority_hrn')
- authorities = execute_admin_query(request, authorities_query)
- if authorities is not None:
- # Remove the root authority from the list
- matching = [s for s in authorities if "." in s['authority_hrn']]
- authorities = sorted(matching, key=lambda k: k['authority_hrn'])
- authorities = sorted(matching, key=lambda k: k['name'])
- return authorities
-
def getUserAuthority(self, request):
# Get user_email (XXX Would deserve to be simplified)
user_query = Query().get('local:user').select('email','config')
user_email = self.getUserEmail(wsgi_request)
- authorities = self.getAuthorities(wsgi_request)
+ authorities = getAuthorities(wsgi_request)
user_authority = self.getUserAuthority(wsgi_request)
# getting the org from authority
- for authority in authorities:
- if authority['authority_hrn'] == user_authority:
- authority_name = authority['name']
+ #for authority in authorities:
+ # if authority['authority_hrn'] == user_authority:
+ # authority_name = authority['name']
if method == 'POST' :
'authority_hrn' : wsgi_request.POST.get('authority_name', ''),
'project_name' : project_name,
'purpose' : wsgi_request.POST.get('purpose', ''),
+ 'url' : wsgi_request.POST.get('url', ''),
}
# for new projects max project_name length is 10
if not errors:
logger.info("is_pi on auth_hrn = {}".format(user_authority))
- if is_pi(wsgi_request, user_hrn, user_authority):
+ if is_pi(wsgi_request, user_hrn, post['authority_hrn']):
# PIs can directly create/join project in their own authority...
if 'join' in wsgi_request.POST:
# join existing project