ipaserver.plugins.aci.aci

class ipaserver.plugins.aci.aci(api)[source]

Bases: ipalib.frontend.Object

Public Data Attributes:

NO_CLI

label

takes_params

Inherited from Object

backend_name

takes_params

json_friendly_attributes

Inherited from HasParam

NO_CLI

context

Inherited from Plugin

version

name

full_name

bases

doc

summary

api

Return API instance passed to __init__().

env

Backend

Command

Public Methods:

Inherited from Object

backend

methods

params

primary_key

params_minus_pk

params_minus(*names)

Yield all Param whose name is not in names.

get_dn(*args, **kwargs)

Construct an LDAP DN.

get_params()

This method gets called by HasParam._create_param_namespace().

__json__()

Inherited from Plugin

__init__(api)

finalize()

Finalize plugin initialization.

ensure_finalized()

Finalize plugin initialization if it has not yet been finalized.

__repr__()

Return 'module_name.class_name()' representation.

Inherited from ReadOnly

__lock__()

Put this instance into a read-only state.

__islocked__()

Return True if instance is locked, otherwise False.

__setattr__(name, value)

If unlocked, set attribute named name to value.

__delattr__(name)

If unlocked, delete attribute named name.

Private Data Attributes:

Inherited from ReadOnly

_ReadOnly__locked

Private Methods:

Inherited from Object

_on_finalize()

Do custom finalization.

_Object__get_attrs(name)

Inherited from HasParam

_get_param_iterable(name[, verb])

Return an iterable of params defined by the attribute named name.

_filter_param_by_context(name[, env])

Filter params on attribute named name by environment env.

_create_param_namespace(name[, env])

Inherited from Plugin

_Plugin__name_getter()

_Plugin__full_name_getter()

_Plugin__bases_getter()

_Plugin__doc_getter()

_Plugin__summary_getter()

_on_finalize()

Do custom finalization.


property Backend
property Command
NO_CLI = True
__annotations__ = {}
__delattr__(name)

If unlocked, delete attribute named name.

If this instance is locked, an AttributeError will be raised.

Parameters

name – Name of attribute to delete.

__dict__ = mappingproxy({'__module__': 'ipaserver.plugins.aci', '__doc__': Gettext('ACI object.', domain='ipa', localedir=None), 'NO_CLI': True, 'label': Gettext('ACIs', domain='ipa', localedir=None), 'takes_params': (Str('aciname', cli_name='name', flags=[u'virtual_attribute'], label=Gettext('ACI name', domain='ipa', localedir=None), primary_key=True), Str('permission?', cli_name='permission', doc=Gettext('Permission ACI grants access to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Permission', domain='ipa', localedir=None)), Str('group?', cli_name='group', doc=Gettext('User group ACI grants access to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('User group', domain='ipa', localedir=None)), Str('permissions+', validate_permissions, cli_name='permissions', doc=Gettext('Permissions to grant(read, write, add, delete, all)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Permissions', domain='ipa', localedir=None), normalizer=_normalize_permissions), Str('attrs*', cli_name='attrs', doc=Gettext('Attributes', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Attributes to which the permission applies', domain='ipa', localedir=None)), StrEnum('type?', cli_metavar=u"['user', 'group', 'host', 'service', 'hostgroup', 'netgroup', 'dnsrecord']", cli_name='type', doc=Gettext('type of IPA object (user, group, host, hostgroup, service, netgroup)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Type', domain='ipa', localedir=None), values=[u'user', u'group', u'host', u'service', u'hostgroup', u'netgroup', u'dnsrecord']), Str('memberof?', cli_name='memberof', doc=Gettext('Member of a group', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Member of', domain='ipa', localedir=None)), Str('filter?', cli_name='filter', doc=Gettext('Legal LDAP filter (e.g. ou=Engineering)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Filter', domain='ipa', localedir=None)), Str('subtree?', cli_name='subtree', doc=Gettext('Subtree to apply ACI to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Subtree', domain='ipa', localedir=None)), Str('targetgroup?', cli_name='targetgroup', doc=Gettext('Group to apply ACI to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Target group', domain='ipa', localedir=None)), Flag('selfaci?', autofill=True, cli_name='self', default=False, doc=Gettext('Apply ACI to your own entry (self)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Target your own entry (self)', domain='ipa', localedir=None)), StrEnum('aciprefix', cli_metavar=u"['permission', 'delegation', 'selfservice', 'none']", cli_name='prefix', doc=Gettext('Prefix used to distinguish ACI types (permission, delegation, selfservice, none)', domain='ipa', localedir=None), flags=[u'no_update', u'no_create', u'no_search'], label=Gettext('ACI prefix', domain='ipa', localedir=None), values=[u'permission', u'delegation', u'selfservice', u'none']), Str('aci', flags=[u'no_update', u'no_create', u'no_search'], label=Gettext('ACI', domain='ipa', localedir=None))), '__annotations__': {}})
__init__(api)
__islocked__()

Return True if instance is locked, otherwise False.

__json__()
__lock__()

Put this instance into a read-only state.

After the instance has been locked, attempting to set or delete an attribute will raise an AttributeError.

__module__ = 'ipaserver.plugins.aci'
__repr__()

Return ‘module_name.class_name()’ representation.

This representation could be used to instantiate this Plugin instance given the appropriate environment.

__setattr__(name, value)

If unlocked, set attribute named name to value.

If this instance is locked, an AttributeError will be raised.

Parameters
  • name – Name of attribute to set.

  • value – Value to assign to attribute.

__weakref__

list of weak references to the object (if defined)

_create_param_namespace(name, env=None)
_filter_param_by_context(name, env=None)

Filter params on attribute named name by environment env.

For example:

>>> from ipalib.config import Env
>>> class Example(HasParam):
...
...     takes_args = (
...         Str('foo_only', include=['foo']),
...         Str('not_bar', exclude=['bar']),
...         'both',
...     )
...
...     def get_args(self):
...         return self._get_param_iterable('args')
...
...
>>> eg = Example()
>>> foo = Env(context='foo')
>>> bar = Env(context='bar')
>>> another = Env(context='another')
>>> (foo.context, bar.context, another.context)
(u'foo', u'bar', u'another')
>>> list(eg._filter_param_by_context('args', foo))
[Str('foo_only', include=['foo']), Str('not_bar', exclude=['bar']), Str('both')]
>>> list(eg._filter_param_by_context('args', bar))
[Str('both')]
>>> list(eg._filter_param_by_context('args', another))
[Str('not_bar', exclude=['bar']), Str('both')]
_get_param_iterable(name, verb='takes')

Return an iterable of params defined by the attribute named name.

A sequence of params can be defined one of three ways: as a tuple; as a callable that returns an iterable; or as a param spec (a Param or str instance). This method returns a uniform iterable regardless of how the param sequence was defined.

For example, when defined with a tuple:

>>> class ByTuple(HasParam):
...     takes_args = (Param('foo'), Param('bar'))
...
>>> by_tuple = ByTuple()
>>> list(by_tuple._get_param_iterable('args'))
[Param('foo'), Param('bar')]

Or you can define your param sequence with a callable when you need to reference attributes on your plugin instance (for validation rules, etc.). For example:

>>> class ByCallable(HasParam):
...     def takes_args(self):
...         yield Param('foo', self.validate_foo)
...         yield Param('bar', self.validate_bar)
...
...     def validate_foo(self, _, value, **kw):
...         if value != 'Foo':
...             return _("must be 'Foo'")
...
...     def validate_bar(self, _, value, **kw):
...         if value != 'Bar':
...             return _("must be 'Bar'")
...
>>> by_callable = ByCallable()
>>> list(by_callable._get_param_iterable('args'))
[Param('foo', validate_foo), Param('bar', validate_bar)]

Lastly, as a convenience for when a param sequence contains a single param, your defining attribute may a param spec (either a Param or an str instance). For example:

>>> class BySpec(HasParam):
...     takes_args = Param('foo')
...     takes_options = 'bar?'
...
>>> by_spec = BySpec()
>>> list(by_spec._get_param_iterable('args'))
[Param('foo')]
>>> list(by_spec._get_param_iterable('options'))
['bar?']

For information on how an str param spec is interpreted, see the create_param() and parse_param_spec() functions in the ipalib.parameters module.

Also see HasParam._filter_param_by_context().

_on_finalize()

Do custom finalization.

This method is called from finalize(). Subclasses can override this method in order to add custom finalization.

property api

Return API instance passed to __init__().

backend = None
backend_name = None
bases = (<class 'ipalib.frontend.Object'>,)
property context
doc = Gettext('ACI object.', domain='ipa', localedir=None)
ensure_finalized()

Finalize plugin initialization if it has not yet been finalized.

property env
finalize()

Finalize plugin initialization.

This method calls _on_finalize() and locks the plugin object.

Subclasses should not override this method. Custom finalization is done in _on_finalize().

class finalize_attr(name, value=None)

Bases: object

Create a stub object for plugin attribute that isn’t set until the finalization of the plugin initialization.

When the stub object is accessed, it calls ensure_finalized() to make sure the plugin initialization is finalized. The stub object is expected to be replaced with the actual attribute value during the finalization (preferably in _on_finalize()), otherwise an AttributeError is raised.

This is used to implement on-demand finalization of plugin initialization.

__get__(obj, cls)
__init__(name, value=None)
__module__ = 'ipalib.plugable'
__slots__ = ('name', 'value')
name
value
full_name = 'aci/1'
get_dn(*args, **kwargs)

Construct an LDAP DN.

get_params()

This method gets called by HasParam._create_param_namespace().

json_friendly_attributes = ('name', 'takes_params')
label = Gettext('ACIs', domain='ipa', localedir=None)
methods = None
name = 'aci'
params = None
params_minus(*names)

Yield all Param whose name is not in names.

params_minus_pk = None
primary_key = None
summary = 'ACI object.'
takes_params = (Str('aciname', cli_name='name', flags=[u'virtual_attribute'], label=Gettext('ACI name', domain='ipa', localedir=None), primary_key=True), Str('permission?', cli_name='permission', doc=Gettext('Permission ACI grants access to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Permission', domain='ipa', localedir=None)), Str('group?', cli_name='group', doc=Gettext('User group ACI grants access to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('User group', domain='ipa', localedir=None)), Str('permissions+', validate_permissions, cli_name='permissions', doc=Gettext('Permissions to grant(read, write, add, delete, all)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Permissions', domain='ipa', localedir=None), normalizer=_normalize_permissions), Str('attrs*', cli_name='attrs', doc=Gettext('Attributes', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Attributes to which the permission applies', domain='ipa', localedir=None)), StrEnum('type?', cli_metavar=u"['user', 'group', 'host', 'service', 'hostgroup', 'netgroup', 'dnsrecord']", cli_name='type', doc=Gettext('type of IPA object (user, group, host, hostgroup, service, netgroup)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Type', domain='ipa', localedir=None), values=[u'user', u'group', u'host', u'service', u'hostgroup', u'netgroup', u'dnsrecord']), Str('memberof?', cli_name='memberof', doc=Gettext('Member of a group', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Member of', domain='ipa', localedir=None)), Str('filter?', cli_name='filter', doc=Gettext('Legal LDAP filter (e.g. ou=Engineering)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Filter', domain='ipa', localedir=None)), Str('subtree?', cli_name='subtree', doc=Gettext('Subtree to apply ACI to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Subtree', domain='ipa', localedir=None)), Str('targetgroup?', cli_name='targetgroup', doc=Gettext('Group to apply ACI to', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Target group', domain='ipa', localedir=None)), Flag('selfaci?', autofill=True, cli_name='self', default=False, doc=Gettext('Apply ACI to your own entry (self)', domain='ipa', localedir=None), flags=[u'virtual_attribute'], label=Gettext('Target your own entry (self)', domain='ipa', localedir=None)), StrEnum('aciprefix', cli_metavar=u"['permission', 'delegation', 'selfservice', 'none']", cli_name='prefix', doc=Gettext('Prefix used to distinguish ACI types (permission, delegation, selfservice, none)', domain='ipa', localedir=None), flags=[u'no_update', u'no_create', u'no_search'], label=Gettext('ACI prefix', domain='ipa', localedir=None), values=[u'permission', u'delegation', u'selfservice', u'none']), Str('aci', flags=[u'no_update', u'no_create', u'no_search'], label=Gettext('ACI', domain='ipa', localedir=None)))
version = '1'