Goal

Provide a "eBox user" interface, that is, a web interface for users defined in the eBox users and groups module.

Every module providing user services (like printers, mail, jabber and samba) will be able to offer an user interface.

The following features are expected by each module:

  • usersandgroups
    • change password
  • printers
    • access to user print queue
  • mail
    • maybe webmail?
    • auto-responder?
    • quarantine queue?
  • samba
    • maybe access to files through https
  • jabber
    • ???
  • ca
    • User-based certificates

In any case, just the need to allow users to change their passwords makes this necessary.

Design

  • Extend the eBox authentication system to:
    • Add a user field to the authentication form
    • Support multiple users (multiple user session cookie)
    • Authenticate against different modules
      • Create a UserAuthenticator? interface, which both the base and usersandgroups modules will implement, the base module will only have the 'eboxadmin' user while the usersandgroups module will be able to authenticate the users stored in LDAP. Note that this also opens the possibility of having in the future several ebox administrators and other nice stuff.
  • Create a UserInterfaceProvider? interface that the modules can implement to offer user interface pages (menu entries, ...)
  • Implement a user interface for the different modules as stated above