Automatically detect auth file changes and reloading those changes.

This commit is contained in:
Pedro Algarvio 2011-04-25 14:43:44 +01:00
parent 89d04a393b
commit e552c21f66
1 changed files with 21 additions and 1 deletions

View File

@ -87,7 +87,7 @@ class Account(object):
class AuthManager(component.Component):
def __init__(self):
component.Component.__init__(self, "AuthManager")
component.Component.__init__(self, "AuthManager", interval=10)
self.__auth = {}
self.__auth_modification_time = None
@ -100,6 +100,26 @@ class AuthManager(component.Component):
def shutdown(self):
pass
def update(self):
log.debug("Querying for changed auth file")
auth_file = configmanager.get_config_dir("auth")
# Check for auth file and create if necessary
if not os.path.exists(auth_file):
log.info("Authfile not found, recreating it.")
self.__create_auth_file()
self.__create_localclient_account()
self.write_auth_file()
auth_file_modification_time = os.stat(auth_file).st_mtime
if self.__auth_modification_time is None:
self.__auth_modification_time = auth_file_modification_time
elif self.__auth_modification_time == auth_file_modification_time:
# File didn't change, no need for re-parsing's
return
log.info("auth file changed, reloading it!")
self.__load_auth_file()
def authorize(self, username, password):
"""
Authorizes users based on username and password