コード例 #1
0
def get_accesslogs_handler(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        True, mandatory_params=['datasource_id'], optional_params=['page_num'])
    if req_error:
        return req_error
    response = get_accesslogs(req_session.get_req_param('datasource_id'),
                              req_session.get_req_param('page_num'))
    return req_session.generate_response(response)
コード例 #2
0
def github_oauth_callback(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, [], ['code', 'state'])
    if req_error:
        return req_error
    url = oauth.oauth_callback(req_session.get_req_param('code'), req_session.get_req_param('state'))
    if not url:
        return req_session.generate_error_response(401, "Not Authenticated")
    else:
        return req_session.generate_redirect_response(url)
コード例 #3
0
def slack_oauth_request(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        False, ['authtoken'], ['scope'])
    if req_error:
        return req_error

    url = oauth.request_oauth(req_session.get_req_param('scope'),
                              req_session.get_req_param('authtoken'))
    return req_session.generate_redirect_response(url)
コード例 #4
0
def update_scan(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        True, ['dataSourceId', 'domainId'])
    if req_error:
        return req_error

    scanner_facade.update_scan(req_session.get_auth_token(),
                               req_session.get_req_param('dataSourceId'),
                               req_session.get_req_param('domainId'))
    return req_session.generate_response(202)
コード例 #5
0
def subscribe_gdrive_notifications(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        True, ["domainId", "dataSourceId"], ["pageNum"])
    if req_error:
        return req_error

    incremental_scan.subscribe(req_session.get_auth_token(),
                               req_session.get_req_param('domainId'),
                               req_session.get_req_param('dataSourceId'),
                               req_session.get_req_param('pageNum'))
    return req_session.generate_response(202)
コード例 #6
0
def validate_policy(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        True, ['dataSourceId', 'policy_trigger'])
    if req_error:
        return req_error

    policy_validator_facade.validate_policy(
        req_session.get_auth_token(),
        req_session.get_req_param('dataSourceId'),
        req_session.get_req_param('policy_trigger'), req_session.get_body())
    return req_session.generate_response(200)
コード例 #7
0
def get_group_members(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        True, optional_params=["groupEmail", "datasourceId"])
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()
    group_email = req_session.get_req_param('groupEmail')
    datasource_id = req_session.get_req_param('datasourceId')

    group_members = directory_controller.get_group_members(
        auth_token, group_email, datasource_id)
    return req_session.generate_sqlalchemy_response(200, group_members)
コード例 #8
0
def get_resources(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        optional_params=["prefix", "pageNumber", "pageSize"])
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()
    page_number = req_session.get_req_param("pageNumber")
    page_size = req_session.get_req_param("pageSize")
    resource_list = resource_controller.get_resources(
        auth_token, page_number, page_size, None, "", "",
        req_session.get_req_param("prefix"))
    return req_session.generate_sqlalchemy_response(200, resource_list)
コード例 #9
0
def delete_datasource(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ["datasourceId"], ["completeDelete"])
    if req_error:
        return req_error
    domain_controller.delete_datasource(req_session.get_auth_token(), req_session.get_req_param("datasourceId"), req_session.get_req_param("completeDelete"))
    return req_session.generate_response(200)
コード例 #10
0
def github_oauth_request(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, ['authToken'])
    if req_error:
        return req_error
    url = oauth.oauth_request(req_session.get_req_param('authToken'))
    return req_session.generate_redirect_response(url)
コード例 #11
0
def get_trusted_entities(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ["domainId"])
    if req_error:
        return req_error

    trusted_entities = domain_controller.get_all_trusted_entities(req_session.get_req_param("domainId"))
    return req_session.generate_sqlalchemy_response(200, trusted_entities)
コード例 #12
0
def delete_policy(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ['policyId'])
    if req_error:
        return req_error

    policy_controller.delete_policy(req_session.get_req_param('policyId'))
    return req_session.generate_response(200)
コード例 #13
0
def gdrive_periodic_changes_poll(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        False, optional_params=['datasource_id'])
    if req_error:
        return req_error

    incremental_scan.gdrive_periodic_changes_poll(
        req_session.get_req_param('datasource_id'))
    return req_session.generate_response(200)
コード例 #14
0
def handle_channel_expiration(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        False, optional_params=['page_num'])
    if req_error:
        return req_error

    response = incremental_scan.handle_channel_expiration(
        req_session.get_req_param('page_num'))
    return req_session.generate_response(202)
コード例 #15
0
def update_policy(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ['policyId'])
    if req_error:
        return req_error

    policy = policy_controller.update_policy(
        req_session.get_auth_token(), req_session.get_req_param('policyId'),
        req_session.get_body())

    return req_session.generate_sqlalchemy_response(201, policy)
コード例 #16
0
def get_activities_for_user(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(
        mandatory_params=["user_email"])
    if req_error:
        return req_error

    auth_token = req_session.get_auth_token()

    user_email = req_session.get_req_param('user_email')
    response = activities.get_activities_for_user(auth_token, user_email, None)
    return req_session.generate_sqlalchemy_response(200, response)
コード例 #17
0
def delete_scheduled_report(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ['reportId'])
    if req_error:
        return req_error
    deleted_report = reports_controller.delete_report(
        req_session.get_auth_token(), req_session.get_req_param('reportId'))

    function_name = aws_utils.get_lambda_name('get',
                                              urls.EXECUTE_SCHEDULED_REPORT)
    aws_utils.delete_cloudwatch_event(deleted_report.report_id, function_name)
    return req_session.generate_response(200)
コード例 #18
0
def run_scheduled_report(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True, ['reportId'])
    if req_error:
        return req_error

    auth_token = req_session.get_auth_token()

    response = reports_controller.run_report(
        auth_token, req_session.get_req_param('reportId'))
    return req_session.generate_sqlalchemy_response(200,
                                                    response['response_data'])
コード例 #19
0
def get_users_list(event, context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(optional_params=[
        "full_name", "email", "member_type", "datasource_id", "sort_column",
        "sort_order", "is_admin", "type", "page_number"
    ])
    if req_error:
        return req_error
    users = directory_controller.get_users_list(
        req_session.get_auth_token(), req_session.get_req_param("full_name"),
        req_session.get_req_param("email"),
        req_session.get_req_param("member_type"),
        req_session.get_req_param("datasource_id"),
        req_session.get_req_param("sort_column"),
        req_session.get_req_param("sort_order"),
        req_session.get_req_param("is_admin"),
        req_session.get_req_param("type"),
        req_session.get_req_param("page_number"))
    return req_session.generate_sqlalchemy_response(200, users)
コード例 #20
0
def execute_cron_report(event, context):
    Logger().info("execute_cron_report : event " + str(event))
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(False, ["report_id"])
    if req_error:
        return req_error

    if req_error:
        return req_error

    Logger().info("call generate_csv_report function ")
    Logger().info("report id " + str(req_session.get_req_param('report_id')))
    response = reports_controller.generate_csv_report(
        req_session.get_req_param('report_id'))

    if len(response['csv_records']) > 0:
        Logger().info("call send_email_with_attachment function ")
        report_desc = '[Adya] ' + response['report_desc']
        aws_utils.send_email_with_attachment(response['email_list'],
                                             response['csv_records'],
                                             report_desc,
                                             response['report_name'])

    return req_session.generate_response(200)
コード例 #21
0
def get_user_app(event,context):
    req_session = RequestSession(event)
    req_error = req_session.validate_authorized_request(True,optional_params=["filterType", "appId", "domainId", "userEmail", "datasourceId", "pageNumber","pageSize","sortColumn","sortOrder","appName"])
    if req_error:
        return req_error
    auth_token = req_session.get_auth_token()
    filter_type = req_session.get_req_param('filterType')
    data = {}
    if filter_type == 'USER_APPS':
        app_id = req_session.get_req_param('appId')
        domain_id = req_session.get_req_param('domainId')
        user_email = req_session.get_req_param('userEmail')
        datasource_id = req_session.get_req_param('datasourceId')
        sort_column_name = req_session.get_req_param("sortColumn")
        sort_order = req_session.get_req_param("sortOrder")
        if app_id:
            data = directory_controller.get_users_for_app(auth_token, domain_id, app_id, sort_column_name, sort_order)
        elif user_email:
            data = directory_controller.get_apps_for_user(auth_token, datasource_id, user_email)
        else:
            data = directory_controller.get_all_apps(auth_token)
    elif filter_type == 'INSTALLED_APPS':
        app_name = req_session.get_req_param("appName")
        page_number = req_session.get_req_param("pageNumber")
        page_size = req_session.get_req_param("pageSize")
        sort_column_name = req_session.get_req_param("sortColumn")
        sort_order = req_session.get_req_param("sortOrder")
        apps, total_count = app_controller.get_installed_apps(auth_token, page_number, page_size, app_name, sort_column_name, sort_order)
        data = {'apps':apps, 'last_page':total_count}
    elif filter_type == 'INVENTORY_APPS':  
        app_name = req_session.get_req_param("appName")
        page_num =  req_session.get_req_param("pageNumber")
        page_size =  req_session.get_req_param("pageSize")
        apps, total_count = app_controller.get_inventory_apps(auth_token, page_num, page_size, app_name)
        data = {'apps':apps, 'last_page':total_count}
    return req_session.generate_sqlalchemy_response(200, data)