GSoC/GCI Archive
Google Code-in 2010 GNOME

Snowy: Link multiple OpenID's to one account

completed by: Natan Yellin

mentors: Leon Handreke

Task description:

Currently, snowy users have a choice of either creating their account with a username/password combination or an OpenID account.

You should make it possible to link arbitrary OpenID's to any snowy account (whether the account was created with a user/password combination or with an OpenID). Our underlying infrastructure supports this already, so we now need a way for a user to add (and remove) an OpenID to his account. This should be handled by adding an extra section to the settings page with a list of currently activated OpenID's and an option to add a new one with the existing service selector we have on the login page.

While working on this you will be touching several parts of the snowy code - the user interface, the settings and login views and the library that we use to handle OpenID authentication. You will have to read the existing code and understand how the different components work together to be able to make the right changes in the appropriate places.

We are aware that this is not an easy task - if you have any questions about the task or need advice on how to solve a specific problem with the code, you can talk to us in #snowy on Be patient, we're not around 24/7...

Your work should be delivered as patches attached both to a bug in our bugzilla bug tracker and to this task in Google Melange.

. You should keep the changes to the library that we use (django-openid-auth) to a minimum and pack them in a separate patch (this makes it easier to update the library should we ever need to).

Benefits: Transitioning to a new OpenID or associating an existing account with an OpenID will be possible, further increasing the attractiveness of using OpenID with snowy. For "powerusers", adding multiple OpenID's is a nice feature (maybe you want to log in with Google on your mobile phone but don't mind typing in your main OpenID URL on your desktop computer).


Primary contact: Leon Handreke ( and Jeff Schroeder (