mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add function to retrieve a short list of attributes to make ipa-adddelegation
easier to use.
This commit is contained in:
@@ -45,6 +45,8 @@ def parse_options():
|
|||||||
help="The source group name")
|
help="The source group name")
|
||||||
parser.add_option("-t", "--target", dest="target",
|
parser.add_option("-t", "--target", dest="target",
|
||||||
help="The target group name")
|
help="The target group name")
|
||||||
|
parser.add_option("-l", "--list", dest="list", action="store_true",
|
||||||
|
help="List common attributes (this is not an exhaustive list)")
|
||||||
parser.add_option("--usage", action="store_true",
|
parser.add_option("--usage", action="store_true",
|
||||||
help="Program usage")
|
help="Program usage")
|
||||||
|
|
||||||
@@ -57,6 +59,14 @@ def main():
|
|||||||
|
|
||||||
options, args = parse_options()
|
options, args = parse_options()
|
||||||
|
|
||||||
|
if options.list:
|
||||||
|
client = ipaclient.IPAClient()
|
||||||
|
list = client.get_all_attrs()
|
||||||
|
|
||||||
|
for x in list:
|
||||||
|
print x
|
||||||
|
return 0
|
||||||
|
|
||||||
if len(args) != 2:
|
if len(args) != 2:
|
||||||
print "args is %s" % len(args)
|
print "args is %s" % len(args)
|
||||||
usage()
|
usage()
|
||||||
|
|||||||
@@ -27,24 +27,28 @@ ipa\-adddelegation [\fIOPTION\fR]... \fIname\fR
|
|||||||
.SH "DESCRIPTION"
|
.SH "DESCRIPTION"
|
||||||
Adds a delegation named \fIname\fR.
|
Adds a delegation named \fIname\fR.
|
||||||
|
|
||||||
A delegation is used to grant access to certain attributes from one group to another.
|
A delegation is used to grant write access to certain attributes from one group to another.
|
||||||
|
|
||||||
For example, a secretary group may be granted access to modify the phone attribute of all users in a manager's group.
|
For example, a secretary group may be granted write access to modify the phone attribute of all users in a manager's group.
|
||||||
.SH "OPTIONS"
|
.SH "OPTIONS"
|
||||||
.TP
|
.TP
|
||||||
\fB\-a\fR, \fB\-\-attributes\fR=\fIATTRIBUTES\fR
|
\fB\-a\fR, \fB\-\-attributes\fR=\fIATTRIBUTES\fR
|
||||||
A comma\-separated list of the the \f[SM]attributes\fR that may be written by the source group.
|
A comma\-separated list of the the \f[SM]attributes\fR that may be written by the source group.
|
||||||
|
.TP
|
||||||
|
\fB\-l\fR
|
||||||
|
Provide a list of common attribute names. This is not an exhaustive list.
|
||||||
.TP
|
.TP
|
||||||
\fB\-s\fR, \fB\-\-source\fR=\fISOURCE\fR
|
\fB\-s\fR, \fB\-\-source\fR=\fISOURCE\fR
|
||||||
The name of the group that is being granted write permission.
|
The name of the group that is being granted write permission.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-t\fR, \fB\-\-target\fR=\fITARGET\fR
|
\fB\-t\fR, \fB\-\-target\fR=\fITARGET\fR
|
||||||
The name of the group that will be written to.
|
The name of the group that will be written to.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
All arguments are mandatory.
|
All arguments are mandatory.
|
||||||
|
.SH "EXAMPLES"
|
||||||
|
.TP
|
||||||
|
ipa\-adddelegation \-a telephonenumber,facsimiletelephonenumber,mobile \-s secretaries \-t everyone phones
|
||||||
|
Create a delegation named phones that will let anyone in the secretaries group edit the phone numbers of anyone in the group everyone.
|
||||||
.SH "EXIT STATUS"
|
.SH "EXIT STATUS"
|
||||||
0 if the delegation was added successfully
|
0 if the delegation was added successfully
|
||||||
|
|
||||||
|
|||||||
@@ -321,6 +321,13 @@ class IPAClient:
|
|||||||
|
|
||||||
return self.transport.attrs_to_labels(attrs)
|
return self.transport.attrs_to_labels(attrs)
|
||||||
|
|
||||||
|
def get_all_attrs(self):
|
||||||
|
"""We have a list of hardcoded attributes -> readable labels. Return
|
||||||
|
that complete list if someone wants it.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return self.transport.get_all_attrs()
|
||||||
|
|
||||||
def group_members(self, groupdn, attr_list):
|
def group_members(self, groupdn, attr_list):
|
||||||
"""Do a memberOf search of groupdn and return the attributes in
|
"""Do a memberOf search of groupdn and return the attributes in
|
||||||
attr_list (an empty list returns everything)."""
|
attr_list (an empty list returns everything)."""
|
||||||
|
|||||||
@@ -579,6 +579,21 @@ class RPCClient:
|
|||||||
|
|
||||||
return ipautil.unwrap_binary_data(result)
|
return ipautil.unwrap_binary_data(result)
|
||||||
|
|
||||||
|
def get_all_attrs(self, opts=None):
|
||||||
|
"""We have a list of hardcoded attributes -> readable labels. Return
|
||||||
|
that complete list if someone wants it.
|
||||||
|
"""
|
||||||
|
|
||||||
|
server = self.setup_server()
|
||||||
|
try:
|
||||||
|
result = server.get_all_attrs()
|
||||||
|
except xmlrpclib.Fault, fault:
|
||||||
|
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
|
||||||
|
except socket.error, (value, msg):
|
||||||
|
raise xmlrpclib.Fault(value, msg)
|
||||||
|
|
||||||
|
return ipautil.unwrap_binary_data(result)
|
||||||
|
|
||||||
def group_members(self, groupdn, attr_list=None):
|
def group_members(self, groupdn, attr_list=None):
|
||||||
"""Do a memberOf search of groupdn and return the attributes in
|
"""Do a memberOf search of groupdn and return the attributes in
|
||||||
attr_list (an empty list returns everything)."""
|
attr_list (an empty list returns everything)."""
|
||||||
|
|||||||
@@ -1625,6 +1625,13 @@ class IPAServer:
|
|||||||
|
|
||||||
return label_list
|
return label_list
|
||||||
|
|
||||||
|
def get_all_attrs(self, opts=None):
|
||||||
|
"""We have a list of hardcoded attributes -> readable labels. Return
|
||||||
|
that complete list if someone wants it.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return attrs.attr_label_list
|
||||||
|
|
||||||
def group_members(self, groupdn, attr_list, opts=None):
|
def group_members(self, groupdn, attr_list, opts=None):
|
||||||
"""Do a memberOf search of groupdn and return the attributes in
|
"""Do a memberOf search of groupdn and return the attributes in
|
||||||
attr_list (an empty list returns everything)."""
|
attr_list (an empty list returns everything)."""
|
||||||
|
|||||||
@@ -358,6 +358,7 @@ def handler(req, profiling=False):
|
|||||||
h.register_function(f.update_group)
|
h.register_function(f.update_group)
|
||||||
h.register_function(f.delete_group)
|
h.register_function(f.delete_group)
|
||||||
h.register_function(f.attrs_to_labels)
|
h.register_function(f.attrs_to_labels)
|
||||||
|
h.register_function(f.get_all_attrs)
|
||||||
h.register_function(f.group_members)
|
h.register_function(f.group_members)
|
||||||
h.register_function(f.get_ipa_config)
|
h.register_function(f.get_ipa_config)
|
||||||
h.register_function(f.update_ipa_config)
|
h.register_function(f.update_ipa_config)
|
||||||
|
|||||||
Reference in New Issue
Block a user