def __init__(self, **kwargs): self.username: str = kwargs.get("userName") self.domain: str = kwargs.get("domain") self.fullname: str = kwargs.get("name", {}).get("fullName") self.status: str = kwargs.get("status") self.created: str = kwargs.get("created", {}).get("onDate") self.updated: str = kwargs.get("updated", {}).get("onDate") self.groups: str = kwargs.get("members") self.passed_background_check: bool = str2bool( kwargs.get("passed_background_check", False))
async def get(self, account_id, role_name): """ GET /api/v2/roles/{account_number}/{role_name} """ log_data = { "function": "RoleDetailHandler.get", "user": self.user, "ip": self.ip, "message": "Retrieving role details", "user-agent": self.request.headers.get("User-Agent"), "request_id": self.request_uuid, "account_id": account_id, "role_name": role_name, } stats.count( "RoleDetailHandler.get", tags={ "user": self.user, "account_id": account_id, "role_name": role_name }, ) log.debug(log_data) force_refresh = str2bool( self.request.arguments.get("force_refresh", [False])[0]) error = "" try: role_details = await get_role_details(account_id, role_name, extended=True, force_refresh=force_refresh) except Exception as e: sentry_sdk.capture_exception() log.error({**log_data, "error": e}, exc_info=True) role_details = None error = str(e) if role_details: if not allowed_to_sync_role(role_details.arn, role_details.tags): role_details = None if not role_details: self.send_error( 404, message= f"Unable to retrieve the specified role: {account_id}/{role_name}. {error}", ) return self.write(role_details.json())
async def get(self, account_id, role_name): """ GET /api/v2/mtls/roles/{account_id}/{role_name} """ account_id = tornado.escape.xhtml_escape(account_id) role_name = tornado.escape.xhtml_escape(role_name) log_data = { "function": f"{__name__}.{self.__class__.__name__}.{sys._getframe().f_code.co_name}", "ip": self.ip, "message": "Retrieving role details", "user-agent": self.request.headers.get("User-Agent"), "request_id": self.request_uuid, "account_id": account_id, "role_name": role_name, } app_name = self.requester.get("name") or self.requester.get("username") stats.count( "RoleDetailAppHandler.get", tags={ "requester": app_name, "account_id": account_id, "role_name": role_name, }, ) log.debug(log_data) force_refresh = str2bool( self.request.arguments.get("force_refresh", [False])[0]) error = "" try: role_details = await get_role_details(account_id, role_name, extended=True, force_refresh=force_refresh) except Exception as e: sentry_sdk.capture_exception() log.error({**log_data, "error": e}, exc_info=True) role_details = None error = str(e) if not role_details: self.send_error( 404, message= f"Unable to retrieve the specified role: {account_id}/{role_name}. {error}", ) return self.write(role_details.json())
def __init__(self, **kwargs): self.name: str = kwargs.get("name") self.domain: str = kwargs.get("domain") self.group_id: str = kwargs.get("groupId") self.friendly_name: str = kwargs.get("friendlyName") self.description: str = kwargs.get("description") self.settings: str = kwargs.get("settings") self.aliases: str = kwargs.get("aliases") self.members: List = kwargs.get("members", []) self.attributes: List = kwargs.get("attributes") self.automated_group: bool = self.is_group_automated(self.description) # Set all boolean attributes for attr in config.get("groups.attributes.boolean", []): attribute_name = attr.get("name") setattr(self, attribute_name, str2bool(kwargs.get(attribute_name))) # Set all list attributes for attr in config.get("groups.attributes.list", []): attribute_name = attr.get("name") setattr(self, attribute_name, self.convert_to_list(kwargs, attribute_name))