mirror of
https://github.com/altlinux/gpupdate.git
synced 2025-03-21 18:50:38 +03:00
Merge pull request #103 from altlinux/folders_regression_fix
Folders regression fix
This commit is contained in:
commit
43b1ea392f
@ -24,6 +24,7 @@ from gpt.folders import (
|
||||
FileAction
|
||||
, action_letter2enum
|
||||
)
|
||||
from util.windows import expand_windows_var
|
||||
|
||||
def remove_dir_tree(path, delete_files=False, delete_folder=False, delete_sub_folders=False):
|
||||
for entry in path.iterdir():
|
||||
@ -45,8 +46,8 @@ def str2bool(boolstr):
|
||||
return False
|
||||
|
||||
class Folder:
|
||||
def __init__(self, folder_object):
|
||||
self.folder_path = Path(folder_object.path)
|
||||
def __init__(self, folder_object, username):
|
||||
self.folder_path = Path(expand_windows_var(folder_object.path, username).replace('\\', '/'))
|
||||
self.action = action_letter2enum(folder_object.action)
|
||||
self.delete_files = str2bool(folder_object.delete_files)
|
||||
self.delete_folder = str2bool(folder_object.delete_folder)
|
||||
@ -61,9 +62,11 @@ class Folder:
|
||||
self.delete_folders,
|
||||
self.delete_sub_folders)
|
||||
|
||||
def action(self):
|
||||
def act(self):
|
||||
if self.action == FileAction.CREATE:
|
||||
self._create_action()
|
||||
if self.action == FileAction.UPDATE:
|
||||
self._create_action()
|
||||
if self.action == FileAction.DELETE:
|
||||
self._delete_action()
|
||||
if self.action == FileAction.REPLACE:
|
||||
|
@ -65,8 +65,8 @@ class folder_applier_user(applier_frontend):
|
||||
|
||||
def run(self):
|
||||
for directory_obj in self.folders:
|
||||
fld = Folder(directory_obj)
|
||||
fld.action()
|
||||
fld = Folder(directory_obj, self.username)
|
||||
fld.act()
|
||||
|
||||
def admin_context_apply(self):
|
||||
if self.__module_enabled:
|
||||
|
@ -62,10 +62,10 @@ def read_folders(folders_file):
|
||||
for fld in get_xml_root(folders_file):
|
||||
props = fld.find('Properties')
|
||||
fld_obj = folderentry(props.get('path'))
|
||||
fld_obj.set_action(action_letter2enum(props.get('action')))
|
||||
fld_obj.set_delete_folder(folder_int2bool(props.get('deleteFolder')))
|
||||
fld_obj.set_delete_sub_folder(folder_int2bool(props.get('deleteSubFolders')))
|
||||
fld_obj.set_delete_files(folder_int2bool(props.get('deleteFiles')))
|
||||
fld_obj.set_action(action_letter2enum(props.get('action', default='C')))
|
||||
fld_obj.set_delete_folder(folder_int2bool(props.get('deleteFolder', default=1)))
|
||||
fld_obj.set_delete_sub_folders(folder_int2bool(props.get('deleteSubFolders', default=1)))
|
||||
fld_obj.set_delete_files(folder_int2bool(props.get('deleteFiles', default=1)))
|
||||
|
||||
folders.append(fld_obj)
|
||||
|
||||
@ -81,7 +81,7 @@ class folderentry:
|
||||
self.path = path
|
||||
self.action = FileAction.CREATE
|
||||
self.delete_folder = False
|
||||
self.delete_sub_folder = False
|
||||
self.delete_sub_folders = False
|
||||
self.delete_files = False
|
||||
|
||||
def set_action(self, action):
|
||||
@ -90,8 +90,8 @@ class folderentry:
|
||||
def set_delete_folder(self, del_bool):
|
||||
self.delete_folder = del_bool
|
||||
|
||||
def set_delete_sub_folder(self, del_bool):
|
||||
self.delete_sub_folder = del_bool
|
||||
def set_delete_sub_folders(self, del_bool):
|
||||
self.delete_sub_folders = del_bool
|
||||
|
||||
def set_delete_files(self, del_bool):
|
||||
self.delete_files = del_bool
|
||||
|
@ -132,7 +132,7 @@ class folder_entry(object):
|
||||
self.path = fobj.path
|
||||
self.action = fobj.action.value
|
||||
self.delete_folder = str(fobj.delete_folder)
|
||||
self.delete_sub_folder = str(fobj.delete_sub_folder)
|
||||
self.delete_sub_folders = str(fobj.delete_sub_folders)
|
||||
self.delete_files = str(fobj.delete_files)
|
||||
|
||||
def update_fields(self):
|
||||
@ -143,7 +143,7 @@ class folder_entry(object):
|
||||
fields['policy_name'] = self.policy_name
|
||||
fields['action'] = self.action
|
||||
fields['delete_folder'] = self.delete_folder
|
||||
fields['delete_sub_folder'] = self.delete_sub_folder
|
||||
fields['delete_sub_folders'] = self.delete_sub_folders
|
||||
fields['delete_files'] = self.delete_files
|
||||
|
||||
return fields
|
||||
|
@ -122,7 +122,7 @@ class sqlite_registry(registry):
|
||||
, Column('policy_name', String)
|
||||
, Column('action', String)
|
||||
, Column('delete_folder', String)
|
||||
, Column('delete_sub_folder', String)
|
||||
, Column('delete_sub_folders', String)
|
||||
, Column('delete_files', String)
|
||||
, UniqueConstraint('sid', 'path')
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user