diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-03-31 09:24:26 -0600 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-04-01 10:34:57 -0400 |
commit | a6294ba041aa4568b414b5f25a345c00a031667e (patch) | |
tree | b9c7c97783ef876015486918cf046742a721ce32 /ipalib/plugins/defaultoptions.py | |
parent | 0c63ed3f5e67def2dd95880c4b26c39f299a50c2 (diff) | |
download | freeipa-a6294ba041aa4568b414b5f25a345c00a031667e.tar.gz freeipa-a6294ba041aa4568b414b5f25a345c00a031667e.tar.xz freeipa-a6294ba041aa4568b414b5f25a345c00a031667e.zip |
Renamed remaining plugins still using f_* b_* convention
Diffstat (limited to 'ipalib/plugins/defaultoptions.py')
-rw-r--r-- | ipalib/plugins/defaultoptions.py | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/ipalib/plugins/defaultoptions.py b/ipalib/plugins/defaultoptions.py new file mode 100644 index 000000000..ea2af515d --- /dev/null +++ b/ipalib/plugins/defaultoptions.py @@ -0,0 +1,137 @@ +# Authors: +# Rob Crittenden <rcritten@redhat.com> +# +# Copyright (C) 2008 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; version 2 only +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +""" +Frontend plugin for default options in IPA. +""" + +from ipalib import api +from ipalib import Command # Plugin base classes +from ipalib import Str, Int # Parameter types + + +class defaultoptions_mod(Command): + """ + Options command. + """ + takes_options = ( + Int('ipamaxusernamelength?', + cli_name='maxusername', + doc='Max. Username length', + minvalue=1 + ), + Str('ipahomesrootdir?', + cli_name='homedirectory', + doc='Default location of home directories' + ), + Str('ipadefaultloginshell?', + cli_name='defaultshell', + doc='Default shell for new users' + ), + Str('ipadefaultprimarygroup?', + cli_name='defaultgroup', + doc='Default group for new users' + ), + Str('ipadefaultemaildomain?', + cli_name='emaildomain', + doc='Default e-mail domain new users' + ), + Int('ipasearchtimelimit?', + cli_name='searchtimelimit', + doc='Max. amount of time (sec.) for a search (-1 is unlimited)', + minvalue=-1, + ), + Int('ipasearchrecordslimit?', + cli_name='searchrecordslimit', + doc='Max. number of records to search (-1 is unlimited)', + minvalue=-1, + ), + Str('ipausersearchfields?', + cli_name='usersearch', + doc='A comma-separated list of fields to search when searching for users' + ), + Str('ipagroupsearchfields?', + cli_name='groupsearch', + doc='A comma-separated list of fields to search when searching for groups' + ), + ) + def execute(self, *args, **kw): + """ + Execute the defaultoptions-mod operation. + + The dn should not be passed as a keyword argument as it is constructed + by this method. + + Returns the entry + + :param args: This function takes no positional arguments + :param kw: Keyword arguments for the other LDAP attributes. + """ + assert 'dn' not in kw + ldap = self.api.Backend.ldap + config = ldap.get_ipa_config() + dn = config.get('dn') + + # The LDAP routines want strings, not ints, so convert a few + # things. Otherwise it sees a string -> int conversion as a change. + for k in kw.iterkeys(): + if k.startswith("ipa", 0, 3) and type(kw[k]) is int: + kw[k] = str(kw[k]) + + return ldap.update(dn, **kw) + + def output_for_cli(self, textui, result, *args, **options): + textui.print_plain("Default options modified") + +api.register(defaultoptions_mod) + +class defaultoptions_show(Command): + 'Retrieve current default options' + def execute(self, *args, **kw): + """ + Execute the defaultoptions-show operation. + + The dn should not be passed as a keyword argument as it is constructed + by this method. + + Returns the entry + + :param args: Not used. + :param kw: Not used. + """ + ldap = self.api.Backend.ldap + return ldap.get_ipa_config() + + def output_for_cli(self, textui, result, *args, **options): + textui.print_plain("Search Configuration") + textui.print_plain(" Search Time Limit (sec.): %s" % result.get('ipasearchtimelimit')) + textui.print_plain(" Search Records Limit: %s" % result.get('ipasearchrecordslimit')) + textui.print_plain(" User Search Fields: %s" % result.get('ipausersearchfields')) + textui.print_plain(" Group Search Fields: %s" % result.get('ipagroupsearchfields')) + + textui.print_plain("") + + textui.print_plain("User Settings") + textui.print_plain(" Max. Username Length: %s" % result.get('ipamaxusernamelength')) + textui.print_plain(" Root for Home Directories: %s" % result.get('ipahomesrootdir')) + textui.print_plain(" Default Shell: %s" % result.get('ipadefaultloginshell')) + textui.print_plain(" Default User Group: %s" % result.get('ipadefaultprimarygroup')) + textui.print_plain("Default E-mail Domain: %s" % result.get('ipadefaultemaildomain')) + +api.register(defaultoptions_show) |