X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fprojectrequestview.py;h=1f6e921b58e51d056931f6d05b1e708827603cc7;hb=deee82377a1f72626cede01fdfec5e9d7cc274ce;hp=086d60cf948df4db92125dc4b478aa0c876753a6;hpb=9f80229afb54725f42b1e7420e898f3ea1bf176d;p=myslice.git diff --git a/portal/projectrequestview.py b/portal/projectrequestview.py index 086d60cf..1f6e921b 100644 --- a/portal/projectrequestview.py +++ b/portal/projectrequestview.py @@ -1,3 +1,4 @@ +import requests import json import time import re @@ -10,7 +11,7 @@ from manifoldapi.manifoldapi import execute_admin_query, execute_query 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 @@ -19,16 +20,6 @@ from myslice.settings import logger class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): template_name = 'projectrequest_view.html' - def getAuthorities(self, request): - 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') @@ -82,14 +73,14 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): 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' : @@ -136,11 +127,13 @@ class ProjectRequestView(LoginRequiredAutoLogoutView, ThemeView): 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 authority_add_pis(wsgi_request, post['project_name'], user_hrn) else: + # Create project hrn = post['authority_hrn'] + '.' + post['project_name'] sfa_add_authority(wsgi_request, {'authority_hrn':hrn}) authority_add_pis(wsgi_request, hrn, user_hrn)