示例#1
0
文件: auth.py 项目: ywyt738/consoleme
import sys
import time
from typing import List

import ujson as json

from consoleme.config import config
from consoleme.exceptions.exceptions import (
    InvalidCertificateException,
    MissingConfigurationValue,
    NoUserException,
)
from consoleme.lib.generic import str2bool
from consoleme.lib.plugins import get_plugin_by_name

log = config.get_logger("consoleme")
stats = get_plugin_by_name(config.get("plugins.metrics", "default_metrics"))()


class Group(object):
    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)
示例#2
0
from consoleme.config import config
from consoleme.handlers.base import BaseAPIV1Handler
from consoleme.lib.account_indexers import get_account_id_to_name_mapping
from consoleme.lib.auth import (
    can_admin_policies,
    can_create_roles,
    can_delete_roles,
    can_edit_dynamic_config,
)
from consoleme.lib.generic import get_random_security_logo, is_in_group
from consoleme.lib.plugins import get_plugin_by_name

stats = get_plugin_by_name(config.get("plugins.metrics", "default_metrics"))()
log = config.get_logger()


class UserProfileHandler(BaseAPIV1Handler):
    async def get(self):
        """
        Provide information about site configuration for the frontend
        :return:
        """
        is_contractor = config.config_plugin().is_contractor(self.user)
        site_config = {
            "consoleme_logo": await get_random_security_logo(),
            "google_tracking_uri": config.get("google_analytics.tracking_url"),
            "documentation_url": config.get("documentation_page"),
            "support_contact": config.get("support_contact"),
            "support_chat_url": config.get("support_chat_url"),
            "security_logo": config.get("security_logo.image"),
            "security_url": config.get("security_logo.url"),
示例#3
0
from tornado.httputil import url_concat

from consoleme.config import config
from consoleme.exceptions.exceptions import (
    NoRoleTemplateException,
    UserRoleLambdaException,
    UserRoleNotAssumableYet,
)
from consoleme.lib.account_indexers import get_account_id_to_name_mapping
from consoleme.lib.dynamo import IAMRoleDynamoHandler
from consoleme.lib.plugins import get_plugin_by_name
from consoleme.lib.redis import RedisHandler

stats = get_plugin_by_name(config.get("plugins.metrics", "default_metrics"))()

log = config.get_logger(__name__)


class Aws:
    """The AWS class handles all interactions with AWS."""

    def __init__(self):
        self.red = RedisHandler().redis_sync()
        self.redis_key = config.get("aws.iamroles_redis_key", "IAM_ROLE_CACHE")
        self.dynamo = IAMRoleDynamoHandler()

    @retry(
        stop_max_attempt_number=3,
        wait_exponential_multiplier=1000,
        wait_exponential_max=1000,
    )