1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-03-21 18:50:38 +03:00

Added old storage functionality

This commit is contained in:
Valery Sinelnikov 2023-08-18 15:20:11 +04:00
parent 41260df1a1
commit 7a755bbb3e

View File

@ -26,10 +26,24 @@ class PregDconf():
def __init__(self, keyname, valuename, type_preg, data):
self.keyname = keyname
self.valuename = valuename
self.hive_key = '{}/{}'.format(self.keyname, self.valuename)
self.hive_key = '{}\\{}'.format(self.keyname, self.valuename)
self.type = type_preg
self.data = data
class gplist(list):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def first(self):
if self:
return self[0]
else:
return None
def count(self):
return len(self)
class Dconf_registry():
'''
A class variable that represents a global registry dictionary shared among instances of the class
@ -40,6 +54,7 @@ class Dconf_registry():
__template_file = '/usr/share/dconf/user_mandatory.template'
list_keys = list()
_info = dict()
shortcuts = list()
folders = list()
@ -155,11 +170,11 @@ class Dconf_registry():
def filter_hklm_entries(self, startswith):
pregs = self.filter_entries(startswith)
list_entiers = []
list_entiers = list()
for keyname, value in pregs.items():
for valuename, data in value.items():
list_entiers.append(PregDconf(keyname, valuename, find_preg_type(data), data))
return list_entiers
return gplist(list_entiers)
def filter_hkcu_entries(self, sid, startswith):
@ -184,6 +199,104 @@ class Dconf_registry():
return self.get_entry(Dconf_registry.global_registry_dict_win_style, hive_key)
def set_info(self, key , data):
self._info[key] = data
def get_info(self, key):
return self._info.setdefault(key, None)
def add_shortcut(self, sid, sc_obj, policy_name):
self.shortcuts.append(sc_obj)
def add_printer(self, sid, pobj, policy_name):
self.printers.append(pobj)
def add_drive(self, sid, dobj, policy_name):
self.drives.append(dobj)
def add_folder(self, sid, fobj, policy_name):
self.folders.append(fobj)
def add_envvar(self, sid, evobj, policy_name):
self.environmentvariables.append(evobj)
def add_script(self, sid, scrobj, policy_name):
self.scripts.append(scrobj)
def add_file(self, sid, fileobj, policy_name):
self.files.append(fileobj)
def add_ini(self, sid, iniobj, policy_name):
self.inifiles.append(iniobj)
def add_networkshare(self, sid, networkshareobj, policy_name):
self.networkshares.append(networkshareobj)
def get_shortcuts(self, sid):
return self.shortcuts
def get_printers(self, sid):
return self.printers
def get_drives(self, sid):
return self.drives
def get_folders(self, sid):
return self.folders
def get_envvars(self, sid):
return self.environmentvariables
def get_scripts(self, sid, action):
action_scripts = list()
for part in self.scripts:
if action == 'LOGON':
action_scripts.extend(part.get_logon_scripts())
elif action == 'LOGOFF':
action_scripts.extend(part.get_logoff_scripts())
elif action == 'STARTUP':
action_scripts.extend(part.get_startup_scripts())
elif action == 'SHUTDOWN':
action_scripts.extend(part.get_shutdown_scripts())
return action_scripts
def get_files(self, sid):
return self.files
def get_networkshare(self, sid):
return self.networkshares
def get_ini(self, sid):
return self.inifiles
def wipe_user(self, sid):
...
def wipe_hklm(self):
...
def filter_dict_keys(starting_string, input_dict):
return {key: input_dict[key] for key in input_dict if key.startswith(starting_string)}