NewUserAdminTool

Differences between revisions 2 and 3
Revision 2 as of 2010-01-20 04:15:50
Size: 3481
Editor: c-98-216-214-232
Comment:
Revision 3 as of 2010-01-20 04:28:41
Size: 3497
Editor: p77n23
Comment:
Deletions are marked like this. Additions are marked like this.
Line 39: Line 39:
   * 3 side buttons each: add, remove, modify.    * 4 side buttons each: add, remove, modify, migrate/backup.
  • Launchpad Entry: foo

  • Created:

  • Contributors:

  • Packages affected:

Summary

The current User admin tool from GNOME isn't really suited to managing larger numbers of users, as one would get at a school or classrooms. What's needed is a simple, extensible user management tool.

Release Note

Having a good user management tool will make handling classroom situations much better for "non-professional" admins.

Rationale

Current tools:

  • Don't allow sorting by groups.
  • Don't allow adding users to LDAP via the same interface
  • Arent't extensible by users to add "custom" actions needed in per-installation use cases.

User stories

TBA

Assumptions

  • We'd like this tool to be extendable by users with scripts.
  • Written in python for maintainability.
  • Should get user and group information via getent() calls, for compatibility with LDAP environments.
  • Should include a bulk import feature.
  • Should do as little as possible natively in the interface, and use it's own plugin architecture for anything "non standard" or "distro-specific"

Design

  • Interface:
    • Two tabs: users and groups.
    • 4 side buttons each: add, remove, modify, migrate/backup.
    • Hitting "Add" allows for adding a single user or group.
    • Multi-select works for remove.
    • selecting a user/group and hitting "Modify" will allow you to change some things about that user/group.
    • "Bulk Import" menu item
  • Backend
    • GNU/Linux already has a perfectly good way to add/remove users/groups locally to the system. The "adduser" family of commands.
    • config file will, by default, ship with config lines like:
      • Adduser Command = adduser --home %h --shell %s --uid %U .... %u where %h, %s, %U %u, etc are filled in with values entered in the "add users" dialog box.

    • If you want system to do LDAP commands, you simply have to provide a script of some kind (i.e. like in the ldapscripts package) and modify the config file.

    • To populate the list boxes for users and groups, use getent() calls, so that if box us set up for ldap nss, things will work as expected with no modification.
  • Plugins
    • 4 sets of directories:
      • /usr/share/newtool/userplugins.d

      • /usr/share/newtool/groupplugins.d

      • /usr/local/share/newtool/userplugins.d

      • /usr/local/share/newtool/groupplugins.d

    • /usr/share dirs are for "package shipped" plugins
    • /usr/local/share are for local sysadmins to drop locally defined plugins in.
    • Multi select users or groups, right click ->

      • context menu appears, listing the package supplied plugins, then a line, then any user-supplied plugins.
      • user plugins are called as /bin/sh -c userplugin user1 <user2...> for each user selected in the list.

      • group plugins similar.
      • Plugin's responsibility to look up any other information it needs (i.e. homedir of user1, etc.)

Implementation

Post lucid.

UI Changes

New program, won't replace regular management tool, but should appear in the "administration" menu.

Code Changes

None.

Migration

Not known at this time.

Test/Demo Plan

Unresolved issues

How to handle being able to add to BOTH local database AND LDAP?

BoF agenda and discussion


CategorySpec

Edubuntu/Specifications/NewUserAdminTool (last edited 2010-01-21 19:55:28 by 196-210-177-89-wblv-esr-3)