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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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'])
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)
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)
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)