[Freeipa-devel] [PATCH] 228 add function to prompt for entry after multiple results in -find
Rob Crittenden
rcritten at redhat.com
Mon Jun 8 21:42:25 UTC 2009
Rob Crittenden wrote:
> The -find commands right now just dump all the data that was found. This
> function can be used to display a list of the results so the user can
> select a specfic record that will be displayed.
>
> I think that we'll ultimitely implement this within the LDAPObject class
> to make it easier on plugin developers. What they will need to provide
> is the format line that will be used and the attributes to display.
>
> The code looks something like:
>
> selected = textui.select_entry(users,
> "%(givenname)s %(sn)s (%(uid)s)",
> ("givenname", "sn", "uid"))
> if selected == -2:
> # Don't show anything else
> return
>
> if selected >= 0:
> users = [users[selected]]
> counter = 1
>
> for u in xrange(counter):
> cmd = api.Command['user_show']
> result = cmd(users[u]['uid'].decode('UTF-8'), **options)
> if callable(cmd.output_for_cli):
> for param in cmd.params():
> if param.password and param.name in options:
> del options[param.name]
> (args, options) = cmd.params_2_args_options(**options)
> cmd.output_for_cli(self.api.Backend.textui, result,
> *args, **options)
>
> This demonstrates the full code in output_for_cli() for the current user
> plugin. It looks like this to the user:
>
> % ipa user-find tim
> ---------------
> Found 3 matches
> ---------------
> 1: Tim User (tuser1)
> 2: Tim User (tuser2)
> 3: Tim User (tuser3)
> Choose one: (1 - 3), a for all, q to quit:
>
> By doing this in a higher-level class we'll save a lot of coding. We
> just need to pass in the format string, the list of attributes in that
> format string and the command to call to display a full entry.
>
> This also lets us centralize showing an entry to one function instead of
> splitting it between -find and -show.
>
> If this is called without a tty (like redirecting to a file) then all
> entries are returned.
>
> What this doesn't do is any sort of paging. I'm not sure if we want that
> or not. If 100 entries are returned this could get pretty ugly.
>
> rob
The patch is always helpful.
rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-228-select.patch
Type: application/mbox
Size: 4781 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20090608/572666e6/attachment.mbox>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3245 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20090608/572666e6/attachment.bin>
More information about the Freeipa-devel
mailing list