Ejemplo n.º 1
0
    def load_from_options(self, **kwargs):
        _assert_identity_options(kwargs)
        if (not kwargs.get('application_credential_id')
                and not kwargs.get('application_credential_name')):
            m = ('You must provide either an application credential ID or an '
                 'application credential name and user.')
            raise exceptions.OptionError(m)
        if not kwargs.get('application_credential_secret'):
            m = ('You must provide an auth secret.')
            raise exceptions.OptionError(m)

        return super(ApplicationCredential, self).load_from_options(**kwargs)
Ejemplo n.º 2
0
def _assert_identity_options(options):
    if (options.get('username') and not (options.get('user_domain_name')
                                         or options.get('user_domain_id'))):
        m = "You have provided a username. In the V3 identity API a " \
            "username is only unique within a domain so you must " \
            "also provide either a user_domain_id or user_domain_name."
        raise exceptions.OptionError(m)
Ejemplo n.º 3
0
    def load_from_options(self, **kwargs):
        if (kwargs.get('username') and not (kwargs.get('user_domain_name')
                                            or kwargs.get('user_domain_id'))):
            m = "You have provided a username. In the V3 identity API a " \
                "username is only unique within a domain so you must " \
                "also provide either a user_domain_id or user_domain_name."
            raise exceptions.OptionError(m)
        if (not kwargs.get('target_agency_name')
                or not (kwargs.get('target_domain_id')
                        or kwargs.get('target_domain_name'))):
            m = "Using agency based authorization requires " \
                "target_agency_name, target_domain_id or "\
                "target_domain_name at the very minimum"
            raise exceptions.OptionError(m)

        return super(AgencyLoader, self).load_from_options(**kwargs)
Ejemplo n.º 4
0
    def load_from_options(self, **kwargs):
        if not (kwargs.get('access_token_endpoint')
                or kwargs.get('discovery_endpoint')):
            m = ("You have to specify either an 'access-token-endpoint' or "
                 "a 'discovery-endpoint'.")
            raise exceptions.OptionError(m)

        return super(_OpenIDConnectBase, self).load_from_options(**kwargs)
Ejemplo n.º 5
0
    def load_from_options(self, **kwargs):
        if (kwargs.get('username') and not (kwargs.get('user_domain_name')
                                            or kwargs.get('user_domain_id'))):
            m = "You have provided a username. In the V3 identity API a " \
                "username is only unique within a domain so you must " \
                "also provide either a user_domain_id or user_domain_name."
            raise exceptions.OptionError(m)

        return super(Password, self).load_from_options(**kwargs)
Ejemplo n.º 6
0
    def load_from_options(self, **kwargs):
        if not (kwargs.get('authorization_endpoint')
                or kwargs.get('discovery_endpoint')):
            m = ("You have to specify either an 'authorization-endpoint' or "
                 "a 'discovery-endpoint'.")
            raise exceptions.OptionError(m)

        return super(OpenIDConnectAuthorizationCode,
                     self).load_from_options(**kwargs)
Ejemplo n.º 7
0
    def load_from_options(self, **kwargs):
        _assert_identity_options(kwargs)

        if 'auth_methods' not in kwargs:
            raise exceptions.OptionError("methods is a required option.")

        self._methods = kwargs['auth_methods']

        return super(MultiFactor, self).load_from_options(**kwargs)
Ejemplo n.º 8
0
    def load_from_options(self, **kwargs):
        if (kwargs.get('project_name')
                and not (kwargs.get('project_domain_name')
                         or kwargs.get('project_domain_id'))):
            m = "You have provided a project_name. In the V3 identity API a " \
                "project_name is only unique within a domain so you must " \
                "also provide either a project_domain_id or " \
                "project_domain_name."
            raise exceptions.OptionError(m)

        return super(BaseV3Loader, self).load_from_options(**kwargs)
Ejemplo n.º 9
0
    def load_from_options(self, **kwargs):
        if (not kwargs.get('domain_id') and not kwargs.get('domain_name')
                and not kwargs.get('project_id')
                and not kwargs.get('project_name')
                or (kwargs.get('project_name')
                    and not (kwargs.get('project_domain_name')
                             or kwargs.get('project_domain_id')))):
            m = ('You need to provide either a domain_name, domain_id, '
                 'project_id or project_name. '
                 'If you have provided a project_name, in the V3 identity '
                 'API a project_name is only unique within a domain so '
                 'you must also provide either a project_domain_id or '
                 'project_domain_name.')
            raise exceptions.OptionError(m)

        return super(TokenlessAuth, self).load_from_options(**kwargs)