As I promised, I've given some thoughts about this user system and I have some visions how it could work. Note that this is now written based on external experience without looking how Trac internals now work.
First at all, user handling would be divided to three different modules by functionality: 'authentication', 'authorization' and 'profile'. Authentication module (I think IAuthenticator currently) is responsible to tell that user is granted access to this system. Result of login is session key that is used as in many systems. Required unique username. Authorization module (I think IPermission* currently) is responsible tell that can user do action or not. Totally new thing I would like to introduce is 'profile'. Profile module is central storage and api to interact with user related data: at least it contains unique username that is used to identify profile. It could also contain all fields that one want to save from user: username, (hashed) password, full name, age, address, e-mail, company etc. It would be extensible like custom fields in ticket system. Also you would be able to populate data from other sources than Trac db. For example from LDAP. Idea is to provide means to allow more complex actions between user information and application modules. One example is email notificator: When change happens in wikipage we would listen that notificator. Then code would construct email, and say to userprofile that "send this e-mail to all people who are interested in 'me'". Then it's up to email notificator to gather user list (e-mails) and send it out. People could save arbitary data to profile - like their favourite queries. This of course brings new issues in house: currently Trac is very liberate about input fields, specially regarding usernames. This would need a slight change so that in case where you can have anonymous access there is not possible to enter messages in name of registered users without logging in. It could also provide for example username to realname translations, like some companies have trend to name users like 'jdoe1', and 'jdoe2' That is not very user friendly, most people would like to see "John Doe", and "Jane Doe". -- Jani Tiainen --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/trac-dev?hl=en -~----------~----~----~----~------~----~------~--~---
