def main():

    flavor_name = test_config.instance_properties['flavor_name']
    image_name = test_config.instance_properties['image_name']
    availability_zone = test_config.instance_properties['availability_zone']

    DEFAULT = test_config.instance_properties['default_number_of_instances']

    if len(sys.argv) < 2:
        print('INFO: Number of instances is not passed, using DEFAULT = %d' % DEFAULT)
        num_instances = DEFAULT
    else:
        try:
            num_instances = int(sys.argv[1])
        except Exception:
            print('ERROR: Invalid argument passed, needs to be integer')
            print('INFO: Using DEFAULT = %d instead' % DEFAULT)
            num_instances = DEFAULT

    keystone_url = credentials.keystone_cfg['service_url']
    username = credentials.keystone_cfg['username']
    password = credentials.keystone_cfg['password']
    user_domain_name = credentials.keystone_cfg['user_domain_name']
    project_name = credentials.keystone_cfg['project_name']
    project_domain_name =  credentials.keystone_cfg['project_domain_name']

    VERSION = credentials.keystone_cfg['nova_api_version']

    auth_service = AuthService(keystone_url=keystone_url,
                               username = username,
                               password = password,
                               user_domain_name = user_domain_name,
                               project_name = project_name,
                               project_domain_name = project_domain_name,
                               nova_api_version = VERSION)

    try:
        print('Authenticating, waiting server to respond')
        nova = client.Client(VERSION, session=auth_service.get_session())
        print('Getting desired flavor %s' % flavor_name)
        flavor = nova.flavors.find(name = flavor_name)
        print('Getting desired image %s' % image_name)
        image = nova.images.find(name = image_name)
        print('Getting network list')
        networks = nova.networks.list()
        print('Creating nic with network id %s' % networks[0].id)
        nics = [{'net-id' : networks[0].id}]

        for i in range(num_instances):
            name = 'random ' + str(i) + str(time())
            print('Starting server %s' % name)
            server = nova.servers.create(name = name,
                                            image = image.id,
                                            flavor = flavor.id,
                                            nics = nics,
                                            availability_zone = availability_zone)
    except Exception as e:
        print e

    print 'Finished ...'
Example #2
0
def o365_auth_callback(request):
    AuthService.validate_state(request)
    code = request.POST.get('code')

    redirect_uri = AuthService.get_redirect_uri(request, 'Auth/O365/Callback')
    auth_result = token_service.get_token_with_code(code, redirect_uri,
                                                    constant.Resources.MSGraph)
    o365_user_id = auth_result.get('oid')
    tenant_id = auth_result.get('tenantId')
    token_service.cache_tokens(auth_result, o365_user_id)

    ms_graph_service = MSGraphService(auth_result.get('accessToken'))
    o365_user = ms_graph_service.get_o365_user(tenant_id)
    AuthService.set_o365_user(request, o365_user)

    for role in o365_user.roles:
        user_service.update_role(o365_user.id, role)

    user_service.create_or_update_organization(tenant_id,
                                               o365_user.tenant_name)
    local_user = user_service.get_user_by_o365_email(o365_user.email)
    if local_user:
        auth_login(request, local_user)

    response = HttpResponseRedirect('/')
    response.set_cookie(constant.o365_username_cookie, o365_user.display_name)
    response.set_cookie(constant.o365_email_cookie, o365_user.email)
    return response
Example #3
0
 def __call__(self, request):
     user = AuthService.get_current_user(request)
     if user.are_linked:
         if not Profile.objects.filter(id=user.user_id,
                                       o365UserId=user.o365_user_id):
             auth_logout(request)
             AuthService.set_o365_user(request, user.o365_user)
     return self.get_response(request)
Example #4
0
def login_o365(request):
    extra_params = {
        'scope': 'openid+profile',
        'nonce': AuthService.get_random_string(),
        'prompt': 'login'
    }
    o365_login_url = AuthService.get_authorization_url(
        request, 'code+id_token', 'Link/ProcessCode',
        AuthService.get_random_string(), extra_params)
    return HttpResponseRedirect(o365_login_url)
def main():

    DEFAULT = test_config.instance_properties["default_number_of_instances"]

    if len(sys.argv) < 2:
        print ("INFO: Number of instances to delete is not passed, using DEFAULT = %d" % DEFAULT)
        num_instances = DEFAULT
    else:
        try:
            num_instances = int(sys.argv[1])
        except Exception:
            print ("ERROR: Invalid argument passed, needs to be integer")
            print ("INFO: Using DEFAULT = %d instead" % DEFAULT)
            num_instances = DEFAULT

    keystone_url = credentials.keystone_cfg["service_url"]
    username = credentials.keystone_cfg["username"]
    password = credentials.keystone_cfg["password"]
    user_domain_name = credentials.keystone_cfg["user_domain_name"]
    project_name = credentials.keystone_cfg["project_name"]
    project_domain_name = credentials.keystone_cfg["project_domain_name"]

    VERSION = credentials.keystone_cfg["nova_api_version"]

    auth_service = AuthService(
        keystone_url=keystone_url,
        username=username,
        password=password,
        user_domain_name=user_domain_name,
        project_name=project_name,
        project_domain_name=project_domain_name,
        nova_api_version=VERSION,
    )

    try:
        print ("Authenticating, waiting server to respond")
        novaclient = client.Client(VERSION, session=auth_service.get_session())
        print ("Waiting for server list ")
        servers = novaclient.servers.list()
        total_num = len(servers)

        print ("Total number of servers %d" % total_num)
        if total_num < num_instances:
            num_instances = total_num
        print ("Number of instances to delete %d" % num_instances)

        for i in range(num_instances):
            print ("Deleting server %s " % servers[i].name)
            novaclient.servers.delete(servers[i])
    except Exception as e:
        print e

    print "Finished ..."
Example #6
0
def o365_login(request):
    extra_params = {'nonce': AuthService.get_random_string()}
    o365_email = request.COOKIES.get(constant.o365_email_cookie)
    if o365_email:
        extra_params['login_hint'] = o365_email
    else:
        extra_params['prompt'] = 'login'
    o365_login_url = AuthService.get_authorization_url(
        request, 'code', 'Auth/O365/Callback', AuthService.get_random_string(),
        extra_params)
    settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = True
    return HttpResponseRedirect(o365_login_url)
Example #7
0
def process_code(request):
    AuthService.validate_state(request)
    id_token = AuthService.get_id_token(request)
    tenant_id = id_token.get('tid')

    user_service.update_organization(tenant_id, True)
    message = 'Admin consented successfully!'

    user = AuthService.get_current_user(request)
    if user.is_authenticated:
        request.session['Message'] = message
        return HttpResponseRedirect('/Admin')
    else:
        return HttpResponseRedirect('/Admin/Consent?consented=true')
Example #8
0
def consent(request):

    user = AuthService.get_current_user(request)
    extra_params = {
        'scope': 'openid+profile',
        'nonce': AuthService.get_random_string(),
        'prompt': 'admin_consent'
    }
    if user.o365_user:
        extra_params['login_hint'] = user.o365_email
    o365_login_url = AuthService.get_authorization_url(
        request, 'code+id_token', 'Admin/ProcessCode',
        AuthService.get_random_string(), extra_params)
    return HttpResponseRedirect(o365_login_url)
Example #9
0
def logoff(request):
    user = AuthService.get_current_user(request)
    AuthService.clear_o365_user(request)
    auth_logout(request)
    if not user.are_linked:
        return HttpResponseRedirect('/')
    else:
        scheme = request.scheme
        host = request.get_host()
        redirect_uri = scheme + '://' + host
        logoff_url = constant.log_out_url % (redirect_uri, redirect_uri)
        response =  HttpResponseRedirect(logoff_url)
        response.set_cookie(constant.username_cookie, '')
        response.set_cookie(constant.email_cookie, '')
        return response
Example #10
0
def login_local(request):
    user = AuthService.get_current_user(request)
    login_local_form = LoginLocalInfo()
    context = {'user': user, 'login_local_form': login_local_form}
    # POST /Link/LoginLocal
    if request.method == 'POST':
        login_local_form = LoginLocalInfo(request.POST)
        if login_local_form.is_valid():
            data = login_local_form.clean()
            email = data['Email']
            password = data['Password']
            local_user = auth_authenticate(username=email, password=password)
            if local_user:
                link_service.link(local_user, user.o365_user)
                auth_login(request, local_user)
                request.session[
                    'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
                return HttpResponseRedirect('/')
            else:
                context['errors'] = ['Invalid login attempt.']
            return render(request, 'link/loginlocal.html', context)
    # GET /Link/LoginLocal
    else:
        local_user = user_service.get_user_by_email(user.o365_email)
        if local_user:
            link_service.link(local_user, user.o365_user)
            local_user = user_service.get_user(
                local_user.id)  # reload local user
            auth_login(request, local_user)
            request.session[
                'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
            return HttpResponseRedirect('/')
        else:
            return render(request, 'link/loginlocal.html', context)
Example #11
0
def get_assignment_submission_resources(request,class_id,assignment_id):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    education_service = EducationService(user.tenant_id, token)
    assignemtnResources = education_service.get_Assignment_Resources(class_id,assignment_id)
    submissionResources = education_service.get_Assignment_Submissions_By_User(class_id,assignment_id,user.o365_user_id)
    
    result={}
    resourceArray=[] 
    submissionResourcesArray=[]
    for resource in assignemtnResources:
        obj={}
        obj["id"]=resource.id
        obj["resource"]=resource.resource["displayName"]
        resourceArray.append(obj)
    result["resources"]=resourceArray;
    
    result["submissionId"]=submissionResources[0].id
    for resource in submissionResources:
       for item in resource.resources:
           obj={}
           obj["id"]=item["id"]
           obj["resource"]=item["resource"]["displayName"]
           submissionResourcesArray.append(obj)
    result["submissionResources"]=submissionResourcesArray;
           
    return JsonResponse(result, safe=False)
Example #12
0
class AuthRouter(Resource):
    def __init__(self):
        self.resellerService = ResellerService()
        self.authService = AuthService()

    def post(self, *args, **kwargs):
        json = request.get_json() or None
        if json is None:
            return bad_request()
        try:
            data = LoginSchema().load(json)
            reseller = self.resellerService.get_by_cpf(data["cpf"])
            if reseller == None:
                return bad_request(
                    f'Reseller: {data["cpf"]} not found, please register before to tryng login'
                )
            if not reseller.active:
                return bad_request(f'Reseller: {data["cpf"]} are disabled')
            if not self.authService.login(reseller, data["password"]):
                return bad_request("Check username and password")
            jwt = {
                'token': create_access_token(identity=reseller.cpf),
                'refresh': create_refresh_token(identity=reseller.cpf)
            }
            return ok(data=jwt)
        except NotFoundError:
            return bad_request('Reseller not found')
        except SchemaValidationError as e:
            return bad_request(errors=e.messages)
        except Exception as e:
            return error(e)
Example #13
0
def aboutme(request):
    user = AuthService.get_current_user(request)
    
    context = { 'user': user }
    login_as =""
    if user.local_user.is_authenticated:
        context['show_color'] = user.local_user.is_authenticated
        context['colors'] = constant.favorite_colors        
        context['favorite_color'] = user_service.get_favorite_color(user.user_id)
    if user.is_admin:
        login_as ="Admin"
    if not user.is_admin and user.o365_user is not None:
        token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)        
        education_service = EducationService(user.tenant_id, token)            
        me = education_service.get_me() 
        my_school_id = me.schools[0].id
        
        if me.is_teacher:
            login_as="Teacher"
        if me.is_student:
            login_as="Student"
        
        context['me'] = me
        context['groups'] = education_service.get_my_classes(my_school_id)
    else:
        context['groups'] = []
    context['login_as'] = login_as
    context['role']=login_as
    return render(request, 'managements/aboutme.html', context)
Example #14
0
def new_assignment(request):
    if request.method == 'POST':        
        post=request.POST        
        user = AuthService.get_current_user(request)
        token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
        education_service = EducationService(user.tenant_id, token)
        dueDate = post["duedate"] + "T" + post["duetime"] + "Z"       
        dueDateUTC=datetime.strptime(dueDate,"%m/%d/%YT%H:%M %pZ").strftime("%Y-%m-%dT%H:%M:%SZ")
        result = education_service.add_assignment(post["classId"],post["name"],dueDateUTC)        
        jsonContent = result.content.decode('utf8')
        assignment = json.loads(jsonContent)
        if post['status']=="assigned":
           education_service.publish_assignment(post["classId"],assignment["id"])


        files= request.FILES.getlist("fileUpload")
        if files !=None:
            resourceFolderURL = education_service.get_Assignment_Resource_Folder_URL(post["classId"],assignment["id"])["value"]
            ids = getIds(resourceFolderURL)
            
            for file in files:
               driveFile = uploadFileToOneDrive(resourceFolderURL,file,education_service)      
               resourceUrl = "https://graph.microsoft.com/v1.0/drives/" + ids[0] + "/items/" + driveFile["id"]
               education_service.add_assignment_resources(post["classId"],assignment["id"],driveFile["name"],resourceUrl)
    
        
        referer = request.META.get('HTTP_REFERER') 
        if referer.find("?")==-1:
            referer +="?tab=assignments"
        return HttpResponseRedirect(referer)
Example #15
0
 def process_exception(self, request, exception):
     context = {
         'user': AuthService.get_current_user(request),
         'reason': str(exception)
     }
     if exception.__class__.__name__ == 'RefreshTokenException':
         return render(request, 'login0365required.html', context)
Example #16
0
def admin(request):
    user = AuthService.get_current_user(request)
    context = {
        'user': user,
        'is_admin_consented': user_service.is_tenant_consented(user.tenant_id)
    }
    return render(request, 'admin/index.html', context)
Example #17
0
def classes_next(request, school_id):
    nextlink = request.GET.get('nextLink')
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)

    education_service = EducationService(user.tenant_id, token)
    #school = education_service.get_school(school_id)
    my_classes = education_service.get_my_classes(school_id)
    all_classes, classnextlink = education_service.get_classes(school_id, top=12, nextlink=nextlink)

    for c in all_classes:
        my_class = next((mc for mc in my_classes if c.id == mc.id), None)
        c.custom_data['is_my'] = my_class != None
        if my_class != None:
            c.members = my_class.members

    # my_section_list = [m.to_dict() for m in my_classes]

    ajax_result = {}
    ajax_result['classes'] = {}
    ajax_result['classes']['value'] = [{
          'id': c.id,
          'is_my': c.custom_data['is_my'],
          'display_name': c.display_name,
          'code': c.code,
          'teachers': [{ 'display_name': t.display_name } for t in c.teachers],
          'term_name': c.term.display_name,
          'term_start_time': c.term.start_date,
          'term_end_time': c.term.end_date } for c in all_classes]
    ajax_result['classes']['next_link'] = classnextlink
    # ajax_result['MyClasss'] = my_section_list

    return JsonResponse(ajax_result, safe=False)
Example #18
0
def classes(request, school_id):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    education_service = EducationService(user.tenant_id, token)
    me = education_service.get_me()
    role = get_user_role(user, me)
    education_service = EducationService(user.tenant_id, token)
    school = education_service.get_school(school_id)
    my_classes = education_service.get_my_classes(school_id)
    all_classes, classesnextlink = education_service.get_classes(school_id, 12)

    for c in all_classes:
        my_class = next((mc for mc in my_classes if c.id == mc.id), None)
        c.custom_data['is_my'] = my_class != None
        if my_class != None:
            c.members = my_class.members

    context = {
        'user': user,
        'school': school,
        'classesnextlink': classesnextlink,
        'classes': all_classes,
        'myclasses': my_classes,
        'school_id': school_id,
        'is_in_a_school': True,
        'me': me,
        'role':role
    }
    return render(request, 'schools/classes.html', context)
Example #19
0
def update_assignment(request):
   if request.method == 'POST':
  
        post=request.POST
        files=request.FILES
        user = AuthService.get_current_user(request)
        token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
        education_service = EducationService(user.tenant_id, token)  
        assignment = education_service.get_assignment(post["classId"],post["assignmentId"])  

        if assignment.status=='draft' and post['assignmentStatus']=='assigned':
            education_service.publish_assignment(post['classId'], post['assignmentId'])
        
       
        files= request.FILES.getlist("newResource")

        if files !=None:
            resourceFolderURL = education_service.get_Assignment_Resource_Folder_URL(post["classId"],post["assignmentId"])["value"]
            ids = getIds(resourceFolderURL)
            for file in files:
               driveFile = uploadFileToOneDrive(resourceFolderURL,file,education_service)      
               resourceUrl = "https://graph.microsoft.com/v1.0/drives/" + ids[0] + "/items/" + driveFile["id"]
               education_service.add_assignment_resources(post["classId"],post["assignmentId"],driveFile["name"],resourceUrl)
    
        referer = request.META.get('HTTP_REFERER') 
        if referer.find("?")==-1:
            referer +="?tab=assignments"
        return HttpResponseRedirect(referer)
Example #20
0
def get_submissions(request,class_id,assignment_id):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    education_service = EducationService(user.tenant_id, token)  
    submissions = education_service.get_Submissions(class_id,assignment_id)   
    ms_graph_service = MSGraphService(token)

    result=[]
    for submission in submissions:
        userId =  submission.submittedBy["user"]["id"];
        user = ms_graph_service.get_user_info(userId)                
        resources= education_service.get_Submission_Resources(class_id,assignment_id,submission.id)
        array={}
        array["displayName"]=user["displayName"]
        array["submittedDateTime"]  = submission.submittedDateTime 
        
        resources_array=[]
        for resource in resources:
            resources_dict={}
            resources_dict["displayName"] = resource.resource["displayName"]
            resources_array.append(resources_dict)
        array["resources"]=  resources_array  
        result.append(array)

    return JsonResponse(result, safe=False)
Example #21
0
def create_local(request):
    user = AuthService.get_current_user(request)
    create_local_form = CreateLocalInfo()
    context = {'user': user, 'create_local_form': create_local_form}
    # POST /Link/CreateLocal
    if request.method == 'POST':
        create_local_form = CreateLocalInfo(request.POST)
        data = ''
        if create_local_form.is_valid():
            data = create_local_form.clean()
        try:
            local_user = user_service.create(user.o365_user)
        except:
            errors = []
            errors.append('Name %s is already taken.' % user.o365_email)
            errors.append("Email '%s' is already taken." % user.o365_email)
            context['errors'] = errors
            return render(request, 'link/createlocal.html', context)
        link_service.link(local_user, user.o365_user)
        user_service.update_favorite_color(data['FavoriteColor'],
                                           local_user.id)
        local_user = user_service.get_user(local_user.id)  # reload local user
        auth_login(request, local_user)
        request.session[
            'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
        return HttpResponseRedirect('/')
    # GET /Link/CreateLocal
    else:
        return render(request, 'link/createlocal.html', context)
Example #22
0
def add_coteacher(request, class_id, user_object_id):    
    previousURL = request.META.get('HTTP_REFERER')    
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    education_service = EducationService(user.tenant_id, token)
    education_service.add_member(class_id,user_object_id)
    education_service.add_owner(class_id,user_object_id)
    return HttpResponseRedirect(previousURL)
Example #23
0
def process_code(request):
    AuthService.validate_state(request)
    code = request.POST.get('code')
    id_token = AuthService.get_id_token(request)

    o365_user_id = id_token.get('oid')
    tenant_id = id_token.get('tid')

    if link_service.is_linked(o365_user_id):
        request.session[
            'Error'] = 'Failed to link accounts. The Office 365 account %s is already linked to another local account.' % id_token.get(
                'upn')
        return HttpResponseRedirect('/Link')

    redirect_uri = AuthService.get_redirect_uri(request, 'Link/ProcessCode')
    auth_result = token_service.get_token_with_code(code, redirect_uri,
                                                    constant.Resources.MSGraph)
    token_service.cache_tokens(auth_result, o365_user_id)

    ms_graph_service = MSGraphService(auth_result.get('accessToken'))
    o365_user = ms_graph_service.get_o365_user(tenant_id)
    AuthService.set_o365_user(request, o365_user)

    user = AuthService.get_current_user(request)
    link_service.link(user.local_user, o365_user)

    request.session[
        'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
    response = HttpResponseRedirect('/')
    response.set_cookie(constant.o365_username_cookie, o365_user.display_name)
    response.set_cookie(constant.o365_email_cookie, o365_user.email)
    return response
Example #24
0
def photo(request, user_object_id):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    ms_graph_service = MSGraphService(token)
    user_photo = ms_graph_service.get_photo(user_object_id)
    if not user_photo:
        local_photo_path = settings.STATICFILES_DIRS[0] + '/Images/DefaultUserPhoto.jpg'
        local_photo_file = open(local_photo_path, 'rb')
        user_photo = local_photo_file.read()
    return HttpResponse(user_photo, content_type='image/jpeg')
Example #25
0
def index(request):
    user = AuthService.get_current_user(request)
    if not user.is_authenticated:
        return HttpResponseRedirect('/Account/Login')
    if not user.are_linked:
        return HttpResponseRedirect('/Link')
    if user.is_admin and not user_service.is_tenant_consented(user.tenant_id):
        return HttpResponseRedirect('/Admin')
    else:
        return HttpResponseRedirect('/Schools')
Example #26
0
def index(
    schema: AuthRequestSchema,
    dbcontext: DbContext = Depends(get_dbcontext)
):
    try:
        token: str = AuthService(dbcontext).authenticate(schema.username, schema.password)

        return AuthResponseSchema(token_type="Bearer", access_token=token)
    except ValueError as e:
        raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))
Example #27
0
def login_post(request):
    email = ''
    password = ''
    errors = []
    user_form = UserInfo(request.POST)
    if user_form.is_valid():
        data = user_form.clean()
        email = data['Email']
        password = data['Password']
        rememberme = data['RememberMe']
        settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = not rememberme
        user = auth_authenticate(username=email, password=password)
        if user is not None:
            auth_login(request, user)
            o365_user = user_service.get_o365_user(user)
            if o365_user:
                AuthService.set_o365_user(request, o365_user)
            return HttpResponseRedirect('/')
    errors.append('Invalid login attempt.')
    context = {'user_form': user_form, 'errors': errors}
    return render(request, 'account/login.html', context)
Example #28
0
def link(request):
    user = AuthService.get_current_user(request)
    context = {'user': user}
    if not user.are_linked and user.is_o365:
        local_user = user_service.get_user_by_email(user.o365_email)
        if local_user:
            context['local_existed'] = True
            context[
                'local_message'] = 'There is a local account: %s matching your O365 account.' % user.o365_email
        else:
            context['local_existed'] = False
    return render(request, 'link/index.html', context)
Example #29
0
def unlink_account(request, link_id):
    if request.method == 'POST':
        link_service.remove_link(link_id)
        return HttpResponseRedirect('/Admin/LinkedAccounts')
    else:
        user = AuthService.get_current_user(request)
        link = link_service.get_link(link_id)
        context = {
            'user': user,
            'email': link['email'],
            'o365Email': link['o365Email']
        }
        return render(request, 'admin/unlinkaccount.html', context)
Example #30
0
def unconsent(request):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.AADGraph,
                                           user.o365_user_id)
    aad_graph_service = AADGraphService(user.tenant_id, token)

    service_principal = aad_graph_service.get_service_principal()
    aad_graph_service.delete_service_principal(service_principal['objectId'])
    user_service.update_organization(user.tenant_id, False)
    link_service.remove_links(user.tenant_id)

    request.session['Message'] = 'Admin unconsented successfully!'
    return HttpResponseRedirect('/Admin')
Example #31
0
def get_assignment_resources(request,class_id,assignment_id):
    user = AuthService.get_current_user(request)
    token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id)
    education_service = EducationService(user.tenant_id, token)
    resources = education_service.get_Assignment_Resources(class_id,assignment_id)   
    result=[]
    for resource in resources:
        resourceArray={} 
        resourceArray["id"]=resource.id
        resourceArray["resource"]=resource.resource["displayName"]
        result.append(resourceArray)

    return JsonResponse(result, safe=False)
Example #32
0
def login():
    """Log a user in.

    Args :
        data = { username }

    Returns :
        A user object
    """
    data = request.json
    if not data["username"]:
        return json_abort(400, f"Empty string not allowed as a username")
    user = AuthService.login(data["username"])
    return jsonify(user)
    timer.start()
    print('Scheduled delete timer task %d sec' % (delete_time))

keystone_url = credentials.keystone_cfg['service_url']
username = credentials.keystone_cfg['username']
password = credentials.keystone_cfg['password']
user_domain_name = credentials.keystone_cfg['user_domain_name']
project_name = credentials.keystone_cfg['project_name']
project_domain_name =  credentials.keystone_cfg['project_domain_name']

VERSION = credentials.keystone_cfg['nova_api_version']

auth_service = AuthService(keystone_url = keystone_url,
                           username = username,
                           password = password,
                           user_domain_name = user_domain_name,
                           project_name = project_name,
                           project_domain_name = project_domain_name,
                           nova_api_version = VERSION)
try:
    print('Authenticating, waiting server to respond')
    novaclient = client.Client(VERSION, session = auth_service.get_session())
    print('Getting desired flavor %s' % flavor_name)
    flavor = novaclient.flavors.find(name = flavor_name)
    print('Getting desired image %s' % image_name)
    image = novaclient.images.find(name = image_name)
    print('Getting network list')
    networks = novaclient.networks.list()
    print('Creating nic')
    nics = [{'net-id' : networks[0].id}]