def load(self,name): self.__lock.acquire() try: passwd_db = PasswdFile(self.__password_file) passwd_db.load() if name in passwd_db: self.__user = passwd_db[name] else: self.__user = None raise EInvalidValue('name',name,'No such user.') self.__file_modified = passwd_db.last_modified() # loading /etc/shadow database shadow_db = ShadowFile(self.__shadow_file) shadow_db.load() if name in shadow_db: self.__shadow = shadow_db[name] else: self.__shadow = None raise EInvalidValue('User (' ,name, ') does not exist in shadow') self.__shadow_file_modified = shadow_db.last_modified() self.__loaded = 1 finally: self.__lock.release()
def load(self, name): self.__lock.acquire() try: passwd_db = PasswdFile(self.__password_file) passwd_db.load() if name in passwd_db: self.__user = passwd_db[name] else: self.__user = None raise EInvalidValue('name', name, 'No such user.') self.__file_modified = passwd_db.last_modified() # loading /etc/shadow database shadow_db = ShadowFile(self.__shadow_file) shadow_db.load() if name in shadow_db: self.__shadow = shadow_db[name] else: self.__shadow = None raise EInvalidValue('User (', name, ') does not exist in shadow') self.__shadow_file_modified = shadow_db.last_modified() self.__loaded = 1 finally: self.__lock.release()
def is_dirty(self): if not self.__loaded: return 1 self.__lock.acquire() try: passwd_db = PasswdFile(self.__password_file) if not passwd_db.exists(): return 1 else: return not not (passwd_db.last_modified() > self.__file_modified) shadow_db = ShadowFile(self.__shadow_file) if not shadow_db.exists(): return 1 else: return not not (shadow_db.last_modified() > self.__shadow_file_modified) finally: self.__lock.release()