[clo-devel] Using Google accounts for Trac access?

Anton Vodonosov avodonosov at yandex.ru
Tue Aug 16 23:30:04 UTC 2011


16.08.2011, 23:19, "Erik Huelsmann" <ehuels at gmail.com>:
> Reading https://bitbucket.org/Dalius/authopenid-plugin/wiki/Home I conclude we 
> should be able to provide a mapping service to the OpenID module which maps 
> openIDs to internal user accounts. My idea would be to allow users to create
> an .openid file in their home directories; these files could be concatenated by 
> the mapping service on every request when the cache is older than 
> 15 minutes - or something alike.
>
> All we need now is someone to develop the service.

Another option is to tweak the trac openid plugin by few python lines so that 
the OpenID-to-local mapping may be stored in the trac.ini.

Some new trac.ini option:

[openid]
# Key-value list of OpenID to local Trac account mapping.
openid_to_local = <openid1>:<username1>;<openid2>:<username2>

And in in the plugin sources - https://bitbucket.org/Dalius/authopenid-plugin/src/65c4d2c474d9/authopenid/authopenid.py:

Around the line 149:

   openid_to_local = Option('openid', 'openid_to_local', None,
            """ Key-value list of OpenID to local Trac account mapping.""")

Arount the line 532:

            if allowed and and self.openid_to_local:        
                    new_user = parse_somehow_to_map(self.openid_to_local)[remote_user]
                    if new_user:
                        remote_user = new_user

The format of key-value list may be chosen depending what is easier to parse (maybe even
a literal to execute with python's eval, or maybe json to parse with simple json, etc.).

A question: what are the benefits of translating OpenID to a local account? 

As far as I understand, the trac account are only valid for trac and have nothing 
to do with the common-lisp.net user account. So if we use OpenID to login to trac, 
the only advantage is that I will see all the information (tickets) already assigned to 
my old trac name as assigned to me logged-in with OpenID. No other benefits?

If so, it is only useful for existing projects, new projects can use OpenID from the 
beginning?

I also curious how trac accounts are created. As far as I understand, trac 
instance for every cl-net project is a separate application, with it's own database
(in the <project dir>/trac/db/), right? Do you have a script which scans 
<user home>/trac-info.txt and populates trac databases of all the trac instances 
on common-lisp.net?

Best regards,
- Anton




More information about the clo-devel mailing list