Add get/set for backup info, and set_server
This commit is contained in:
		
							parent
							
								
									1e5cc3f347
								
							
						
					
					
						commit
						3db03e53c3
					
				@ -29,10 +29,8 @@ class _Profile(object):
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    User settings are stored in an INI-style configuration
 | 
					    User settings are stored in an INI-style configuration
 | 
				
			||||||
    file.  This object uses the ConfigParser module to load 
 | 
					    file.  This object uses the ConfigParser module to load 
 | 
				
			||||||
    the settings.  At the moment the only storage mechanism
 | 
					    the settings. (We only very rarely set keys, so we don't
 | 
				
			||||||
    is in the set_server_registered method, which loads the 
 | 
					    keep the ConfigParser around between calls.)
 | 
				
			||||||
    file directly from disk, then dumps it back out again 
 | 
					 | 
				
			||||||
    immediately, rather than using the class.
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    The profile is also responsible for loading the user's
 | 
					    The profile is also responsible for loading the user's
 | 
				
			||||||
    public and private ssh keys from disk.
 | 
					    public and private ssh keys from disk.
 | 
				
			||||||
@ -45,6 +43,7 @@ class _Profile(object):
 | 
				
			|||||||
            associated 
 | 
					            associated 
 | 
				
			||||||
        server_registered -- whether the child has registered 
 | 
					        server_registered -- whether the child has registered 
 | 
				
			||||||
            with the school server or not
 | 
					            with the school server or not
 | 
				
			||||||
 | 
					        backup1 -- temporary backup info key for Trial-2
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        pubkey -- public ssh key
 | 
					        pubkey -- public ssh key
 | 
				
			||||||
        privkey_hash -- SHA has of the child's public key 
 | 
					        privkey_hash -- SHA has of the child's public key 
 | 
				
			||||||
@ -56,6 +55,7 @@ class _Profile(object):
 | 
				
			|||||||
        self.privkey_hash = None
 | 
					        self.privkey_hash = None
 | 
				
			||||||
        self.server = None
 | 
					        self.server = None
 | 
				
			||||||
        self.server_registered = False
 | 
					        self.server_registered = False
 | 
				
			||||||
 | 
					        self.backup1 = None
 | 
				
			||||||
        self._load()
 | 
					        self._load()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update(self):
 | 
					    def update(self):
 | 
				
			||||||
@ -65,7 +65,13 @@ class _Profile(object):
 | 
				
			|||||||
        cp = ConfigParser()
 | 
					        cp = ConfigParser()
 | 
				
			||||||
        config_path = os.path.join(env.get_profile_path(), 'config')
 | 
					        config_path = os.path.join(env.get_profile_path(), 'config')
 | 
				
			||||||
        parsed = cp.read([config_path])
 | 
					        parsed = cp.read([config_path])
 | 
				
			||||||
 | 
					        self._load_config(cp)
 | 
				
			||||||
 | 
					        del cp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self._load_pubkey()
 | 
				
			||||||
 | 
					        self._hash_private_key()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _load_config(self, cp):
 | 
				
			||||||
        if cp.has_option('Buddy', 'NickName'):
 | 
					        if cp.has_option('Buddy', 'NickName'):
 | 
				
			||||||
            name = cp.get('Buddy', 'NickName')
 | 
					            name = cp.get('Buddy', 'NickName')
 | 
				
			||||||
            # decode nickname from ascii-safe chars to unicode
 | 
					            # decode nickname from ascii-safe chars to unicode
 | 
				
			||||||
@ -82,10 +88,8 @@ class _Profile(object):
 | 
				
			|||||||
            if registered.lower() == "true":
 | 
					            if registered.lower() == "true":
 | 
				
			||||||
                self.server_registered = True
 | 
					                self.server_registered = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        del cp
 | 
					        if cp.has_option('Server', 'Backup1'):
 | 
				
			||||||
 | 
					            self.backup1 = cp.get('Server', 'Backup1')
 | 
				
			||||||
        self._load_pubkey()
 | 
					 | 
				
			||||||
        self._hash_private_key()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _load_pubkey(self):
 | 
					    def _load_pubkey(self):
 | 
				
			||||||
        self.pubkey = None
 | 
					        self.pubkey = None
 | 
				
			||||||
@ -136,6 +140,22 @@ class _Profile(object):
 | 
				
			|||||||
        key_hash = util._sha_data(key)
 | 
					        key_hash = util._sha_data(key)
 | 
				
			||||||
        self.privkey_hash = util.printable_hash(key_hash)
 | 
					        self.privkey_hash = util.printable_hash(key_hash)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def set_key(section, key, value):
 | 
				
			||||||
 | 
					        cp = ConfigParser()
 | 
				
			||||||
 | 
					        config_path = os.path.join(env.get_profile_path(), 'config')
 | 
				
			||||||
 | 
					        parsed = cp.read([config_path])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if not cp.has_section(section):
 | 
				
			||||||
 | 
					            cp.add_section(section)
 | 
				
			||||||
 | 
					        cp.set(section, key, value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        f = open(config_path, 'w')
 | 
				
			||||||
 | 
					        cp.write(f)
 | 
				
			||||||
 | 
					        f.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self._load_config(cp)
 | 
				
			||||||
 | 
					        del cp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_nick_name():
 | 
					def get_nick_name():
 | 
				
			||||||
    return _profile.name
 | 
					    return _profile.name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -151,21 +171,20 @@ def get_private_key_hash():
 | 
				
			|||||||
def get_server():
 | 
					def get_server():
 | 
				
			||||||
    return _profile.server
 | 
					    return _profile.server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def set_server(server):
 | 
				
			||||||
 | 
					    _profile.set_key('Server', 'server', server)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_trial2_backup():
 | 
				
			||||||
 | 
					    return _profile.backup1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def set_trial2_backup(backup_info):
 | 
				
			||||||
 | 
					    _profile.set_key('Server', 'backup1', backup_info)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_server_registered():
 | 
					def get_server_registered():
 | 
				
			||||||
    return _profile.server_registered
 | 
					    return _profile.server_registered
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def set_server_registered():
 | 
					def set_server_registered():
 | 
				
			||||||
    _profile.server_registered = True
 | 
					    _profile.set_key('Server', 'Registered', True)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    cp = ConfigParser()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    config_path = os.path.join(env.get_profile_path(), 'config')
 | 
					 | 
				
			||||||
    cp.read([config_path])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if not cp.has_section('Server'):
 | 
					 | 
				
			||||||
        cp.add_section('Server')
 | 
					 | 
				
			||||||
    cp.set('Server', 'Registered', True)
 | 
					 | 
				
			||||||
    cp.write(open(config_path, 'w'))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
def update():
 | 
					def update():
 | 
				
			||||||
    _profile.update()
 | 
					    _profile.update()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user