mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-11 00:31:56 -06:00
Use correct super-calls in get_args() methods
The get_args methods in ipalib.crud and ipalib.plugins.baseldap used super() calls that skipped some of the classes in the inheritance chain, and contained code that reimplemented some of the skipped functionality. This made it difficult to customize the get_args behavior. Use proper super() calls.
This commit is contained in:
parent
1acd00487f
commit
295ce7bf18
@ -120,7 +120,10 @@ Note that the above are all equal.
|
||||
"""
|
||||
|
||||
from frontend import Method, Object
|
||||
import backend, frontend, parameters, output
|
||||
import backend
|
||||
import parameters
|
||||
import output
|
||||
from ipalib.text import _
|
||||
|
||||
|
||||
class Create(Method):
|
||||
@ -133,6 +136,8 @@ class Create(Method):
|
||||
def get_args(self):
|
||||
if self.obj.primary_key:
|
||||
yield self.obj.primary_key.clone(attribute=True)
|
||||
for arg in super(Create, self).get_args():
|
||||
yield arg
|
||||
|
||||
def get_options(self):
|
||||
if self.extra_options_first:
|
||||
@ -164,6 +169,8 @@ class PKQuery(Method):
|
||||
# Don't enforce rules on the primary key so we can reference
|
||||
# any stored entry, legal or not
|
||||
yield self.obj.primary_key.clone(attribute=True, query=True)
|
||||
for arg in super(PKQuery, self).get_args():
|
||||
yield arg
|
||||
|
||||
|
||||
class Retrieve(PKQuery):
|
||||
@ -230,7 +237,11 @@ class Search(Method):
|
||||
has_output = output.standard_list_of_entries
|
||||
|
||||
def get_args(self):
|
||||
yield parameters.Str('criteria?', noextrawhitespace=False)
|
||||
yield parameters.Str(
|
||||
'criteria?', noextrawhitespace=False,
|
||||
doc=_('A string searched in all relevant object attributes'))
|
||||
for arg in super(Search, self).get_args():
|
||||
yield arg
|
||||
|
||||
def get_options(self):
|
||||
if self.extra_options_first:
|
||||
|
@ -991,12 +991,9 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
|
||||
takes_options = (BaseLDAPCommand.setattr_option, BaseLDAPCommand.addattr_option)
|
||||
|
||||
def get_args(self):
|
||||
#pylint: disable=E1003
|
||||
for key in self.obj.get_ancestor_primary_keys():
|
||||
yield key
|
||||
if self.obj.primary_key:
|
||||
yield self.obj.primary_key.clone(attribute=True)
|
||||
for arg in super(crud.Create, self).get_args():
|
||||
for arg in super(LDAPCreate, self).get_args():
|
||||
yield arg
|
||||
|
||||
has_output_params = global_output_params
|
||||
@ -1135,12 +1132,9 @@ class LDAPQuery(BaseLDAPCommand, crud.PKQuery):
|
||||
Base class for commands that need to retrieve an existing entry.
|
||||
"""
|
||||
def get_args(self):
|
||||
#pylint: disable=E1003
|
||||
for key in self.obj.get_ancestor_primary_keys():
|
||||
yield key
|
||||
if self.obj.primary_key:
|
||||
yield self.obj.primary_key.clone(attribute=True, query=True)
|
||||
for arg in super(crud.PKQuery, self).get_args():
|
||||
for arg in super(LDAPQuery, self).get_args():
|
||||
yield arg
|
||||
|
||||
# list of attributes we want exported to JSON
|
||||
@ -1167,15 +1161,11 @@ class LDAPMultiQuery(LDAPQuery):
|
||||
)
|
||||
|
||||
def get_args(self):
|
||||
#pylint: disable=E1003
|
||||
for key in self.obj.get_ancestor_primary_keys():
|
||||
yield key
|
||||
if self.obj.primary_key:
|
||||
yield self.obj.primary_key.clone(
|
||||
attribute=True, query=True, multivalue=True
|
||||
)
|
||||
for arg in super(crud.PKQuery, self).get_args():
|
||||
yield arg
|
||||
for arg in super(LDAPMultiQuery, self).get_args():
|
||||
if self.obj.primary_key and arg.name == self.obj.primary_key.name:
|
||||
yield arg.clone(multivalue=True)
|
||||
else:
|
||||
yield arg
|
||||
|
||||
|
||||
class LDAPRetrieve(LDAPQuery):
|
||||
@ -1758,13 +1748,9 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
|
||||
)
|
||||
|
||||
def get_args(self):
|
||||
#pylint: disable=E1003
|
||||
for key in self.obj.get_ancestor_primary_keys():
|
||||
yield key
|
||||
yield Str('criteria?',
|
||||
noextrawhitespace=False,
|
||||
doc=_('A string searched in all relevant object attributes'))
|
||||
for arg in super(crud.Search, self).get_args():
|
||||
for arg in super(LDAPSearch, self).get_args():
|
||||
yield arg
|
||||
|
||||
def get_member_options(self, attr):
|
||||
|
Loading…
Reference in New Issue
Block a user