X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=ipsilon%2Fproviders%2Fopenid%2Fstore.py;h=40e8b8eb4148027851fa7cf5421ad1e2c6f12ec6;hb=cff71af03913b5b0987171205ef0c460b2f6fff8;hp=9b426bc17065de1ebe9727561d8b3cc1fc6f977e;hpb=a7232b6ff6edfcbe36dd44fc0419a71099fda4cb;p=cascardo%2Fipsilon.git diff --git a/ipsilon/providers/openid/store.py b/ipsilon/providers/openid/store.py old mode 100755 new mode 100644 index 9b426bc..40e8b8e --- a/ipsilon/providers/openid/store.py +++ b/ipsilon/providers/openid/store.py @@ -1,8 +1,6 @@ -#!/usr/bin/python -# -# Copyright (C) 2014 Ipsilon project Contributors, for licensee see COPYING +# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING -from ipsilon.util.data import Store +from ipsilon.util.data import Store, UNIQUE_DATA_TABLE from openid import oidutil from openid.association import Association @@ -11,6 +9,7 @@ from openid.store.interface import OpenIDStore as OpenIDStoreInterface from time import time + class OpenIDStore(Store, OpenIDStoreInterface): def __init__(self, database_url): Store.__init__(self, database_url=database_url) @@ -78,3 +77,21 @@ class OpenIDStore(Store, OpenIDStoreInterface): if ((int(assocs[iden]['issued']) + int(assocs[iden]['lifetime'])) < time()): self.del_unique_data('association', iden) + + def _initialize_schema(self): + q = self._query(self._db, 'association', UNIQUE_DATA_TABLE, + trans=False) + q.create() + + def _upgrade_schema(self, old_version): + if old_version == 1: + # In schema version 2, we added indexes and primary keys + # pylint: disable=protected-access + table = self._query(self._db, 'association', UNIQUE_DATA_TABLE, + trans=False)._table + self._db.add_constraint(table.primary_key) + for index in table.indexes: + self._db.add_index(index) + return 2 + else: + raise NotImplementedError()