Beispiel #1
0
 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))
Beispiel #2
0
    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())
Beispiel #3
0
    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())
Beispiel #4
0
    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))