Add a couple of factories to abstract user/org configs
This commit is contained in:
parent
02a2619b45
commit
0b7b44d8a5
@ -25,6 +25,11 @@ class InMemoryConfigStorage(ConfigStorageInterface):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
class NullConfigStorage(ConfigStorageInterface):
|
||||||
|
|
||||||
|
def get(self, key):
|
||||||
|
return None
|
||||||
|
|
||||||
# TODO move out of this file. In general this is config but either user or org config
|
# TODO move out of this file. In general this is config but either user or org config
|
||||||
class RedisConfigStorage(ConfigStorageInterface):
|
class RedisConfigStorage(ConfigStorageInterface):
|
||||||
|
|
||||||
@ -37,3 +42,24 @@ class RedisConfigStorage(ConfigStorageInterface):
|
|||||||
if not self._data:
|
if not self._data:
|
||||||
self._data = self._connection.hgetall(self._config_key)
|
self._data = self._connection.hgetall(self._config_key)
|
||||||
return self._data[key]
|
return self._data[key]
|
||||||
|
|
||||||
|
class UserConfigStorageFactory(object):
|
||||||
|
# TODO rework to support onpremise and InDbStorage
|
||||||
|
def __init__(self, redis_connection, username):
|
||||||
|
self._redis_connection = redis_connection
|
||||||
|
self._username = username
|
||||||
|
|
||||||
|
def get(self):
|
||||||
|
return RedisConfigStorage(self._redis_connection, 'rails:users:{0}'.format(self._username))
|
||||||
|
|
||||||
|
class OrgConfigStorageFactory(object):
|
||||||
|
# TODO rework to support onpremise and InDbStorage
|
||||||
|
def __init__(self, redis_connection, orgname):
|
||||||
|
self._redis_connection = redis_connection
|
||||||
|
self._orgname = orgname
|
||||||
|
|
||||||
|
def get(self):
|
||||||
|
if self._orgname:
|
||||||
|
return RedisConfigStorage(self._redis_connection, 'rails:orgs:{0}'.format(self._orgname))
|
||||||
|
else:
|
||||||
|
return NullConfigStorage()
|
||||||
|
Loading…
Reference in New Issue
Block a user