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
-~----------~----~----~----~------~----~------~--~---

Reply via email to