Changeset 1725

Show
Ignore:
Timestamp:
12/21/06 00:46:05 (2 years ago)
Author:
cygnus
Message:

OpenidPlugin:

Use IEnvironmentSetupParticipant and fix primary key

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openidplugin/trunk/openidauth/auth.py

    r1723 r1725  
    1616from trac.core import * 
    1717from trac.db import * 
     18from trac.env import IEnvironmentSetupParticipant 
    1819from trac.web.api import IAuthenticator, IRequestHandler 
    1920from trac.web.chrome import INavigationContributor, ITemplateProvider 
     
    4445        lifetime INTEGER, 
    4546        assoc_type VARCHAR(64), 
    46         PRIMARY KEY (server_url(255), handle) 
     47        PRIMARY KEY (server_url, handle) 
    4748    )""" 
    4849 
     
    8788 
    8889    implements(IAuthenticator, INavigationContributor, IRequestHandler, 
    89                ITemplateProvider
     90               ITemplateProvider, IEnvironmentSetupParticipant
    9091 
    9192    sessions = {} 
     
    101102    def __init__(self): 
    102103        db = self.env.get_db_cnx() 
    103         self.store = TracOpenIDStore(db) 
     104        self.store = self._getStore(db) 
     105 
     106    def _getStore(self, db): 
     107        return TracOpenIDStore(db) 
     108 
     109    def _initStore(self, db): 
     110        self._getStore(db).createTables() 
     111 
     112    # IEnvironmentSetupParticipant methods 
     113 
     114    def environment_created(self): 
     115        db = self.env.get_db_cnx() 
     116        self._initStore(db) 
     117        db.commit() 
     118 
     119    def environment_needs_upgrade(self, db): 
     120        c = db.cursor() 
    104121        try: 
    105             # Try to create the OpenID store tables. 
    106             self.store.createTables() 
    107         except: 
    108             # Assume they already exist if there was a failure. 
    109             pass 
    110         db.commit() 
     122            c.execute("SELECT count(*) FROM oid_associations") 
     123            db.rollback() 
     124            return False 
     125        except Exception, e: 
     126            db.rollback() 
     127            return True 
     128 
     129    def upgrade_environment(self, db): 
     130        self._initStore(db) 
    111131 
    112132    # IAuthenticator methods