feat: словарь и вкладка Действия с ПДн в ИС
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
[
|
||||||
|
"Сбор персональных данных",
|
||||||
|
"Запись персональных данных",
|
||||||
|
"Систематизация персональных данных",
|
||||||
|
"Накопление персональных данных",
|
||||||
|
"Хранение персональных данных",
|
||||||
|
"Уточнение (обновление, изменение) персональных данных",
|
||||||
|
"Извлечение персональных данных",
|
||||||
|
"Использование персональных данных",
|
||||||
|
"Передача (распространение, предоставление, доступ) персональных данных",
|
||||||
|
"Обезличивание персональных данных",
|
||||||
|
"Блокирование персональных данных",
|
||||||
|
"Удаление персональных данных",
|
||||||
|
"Уничтожение персональных данных",
|
||||||
|
"Трансграничная передача персональных данных",
|
||||||
|
"Автоматизированная обработка персональных данных",
|
||||||
|
"Неавтоматизированная обработка персональных данных",
|
||||||
|
"Смешанная обработка персональных данных",
|
||||||
|
"Формирование и ведение баз данных",
|
||||||
|
"Передача данных третьим лицам",
|
||||||
|
"Внутренняя передача данных между подразделениями"
|
||||||
|
]
|
||||||
@@ -28,6 +28,7 @@ class InformationSystem:
|
|||||||
users: str = ""
|
users: str = ""
|
||||||
defense_tools_list: List[str] = field(default_factory=list)
|
defense_tools_list: List[str] = field(default_factory=list)
|
||||||
processing_modes: str = ""
|
processing_modes: str = ""
|
||||||
|
pd_actions_list: List[str] = field(default_factory=list)
|
||||||
pd_subjects_list: List[str] = field(default_factory=list)
|
pd_subjects_list: List[str] = field(default_factory=list)
|
||||||
personal_data_list: List[str] = field(default_factory=list)
|
personal_data_list: List[str] = field(default_factory=list)
|
||||||
users_list: List[str] = field(default_factory=list)
|
users_list: List[str] = field(default_factory=list)
|
||||||
|
|||||||
@@ -358,6 +358,16 @@ class DokoGenApp:
|
|||||||
self.pd_subjects_listbox = tk.Listbox(subj_tab, height=6)
|
self.pd_subjects_listbox = tk.Listbox(subj_tab, height=6)
|
||||||
self.pd_subjects_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
|
self.pd_subjects_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
|
||||||
|
|
||||||
|
# Действия с ПДн
|
||||||
|
act_tab = ttk.Frame(nb2)
|
||||||
|
nb2.add(act_tab, text="Действия с ПДн")
|
||||||
|
act_btn_frame = ttk.Frame(act_tab)
|
||||||
|
act_btn_frame.pack(fill=tk.X)
|
||||||
|
ttk.Button(act_btn_frame, text="+ Добавить", command=self._add_pd_action_item).pack(side=tk.LEFT, padx=2)
|
||||||
|
ttk.Button(act_btn_frame, text="Выбрать из списка", command=self._select_from_actions_list).pack(side=tk.LEFT, padx=2)
|
||||||
|
self.pd_actions_listbox = tk.Listbox(act_tab, height=6)
|
||||||
|
self.pd_actions_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
|
||||||
|
|
||||||
# СЗИ
|
# СЗИ
|
||||||
def_tab = ttk.Frame(nb2)
|
def_tab = ttk.Frame(nb2)
|
||||||
nb2.add(def_tab, text="Средства защиты")
|
nb2.add(def_tab, text="Средства защиты")
|
||||||
@@ -606,6 +616,7 @@ class DokoGenApp:
|
|||||||
# Списки
|
# Списки
|
||||||
isys.personal_data_list = list(self.pd_listbox.get(0, tk.END))
|
isys.personal_data_list = list(self.pd_listbox.get(0, tk.END))
|
||||||
isys.pd_subjects_list = list(self.pd_subjects_listbox.get(0, tk.END))
|
isys.pd_subjects_list = list(self.pd_subjects_listbox.get(0, tk.END))
|
||||||
|
isys.pd_actions_list = list(self.pd_actions_listbox.get(0, tk.END))
|
||||||
isys.defense_tools_list = list(self.defense_tools_listbox.get(0, tk.END))
|
isys.defense_tools_list = list(self.defense_tools_listbox.get(0, tk.END))
|
||||||
isys.users_list = list(self.users_listbox.get(0, tk.END))
|
isys.users_list = list(self.users_listbox.get(0, tk.END))
|
||||||
|
|
||||||
@@ -840,6 +851,7 @@ class DokoGenApp:
|
|||||||
for lb, items in [
|
for lb, items in [
|
||||||
(self.pd_listbox, isys.personal_data_list or []),
|
(self.pd_listbox, isys.personal_data_list or []),
|
||||||
(self.pd_subjects_listbox, isys.pd_subjects_list or []),
|
(self.pd_subjects_listbox, isys.pd_subjects_list or []),
|
||||||
|
(self.pd_actions_listbox, isys.pd_actions_list or []),
|
||||||
(self.defense_tools_listbox, isys.defense_tools_list or []),
|
(self.defense_tools_listbox, isys.defense_tools_list or []),
|
||||||
(self.users_listbox, isys.users_list or []),
|
(self.users_listbox, isys.users_list or []),
|
||||||
]:
|
]:
|
||||||
@@ -872,6 +884,7 @@ class DokoGenApp:
|
|||||||
threat_type=src.threat_type,
|
threat_type=src.threat_type,
|
||||||
personal_data_category=list(src.personal_data_category),
|
personal_data_category=list(src.personal_data_category),
|
||||||
personal_data_list=list(src.personal_data_list),
|
personal_data_list=list(src.personal_data_list),
|
||||||
|
pd_actions_list=list(src.pd_actions_list),
|
||||||
pd_subjects_list=list(src.pd_subjects_list),
|
pd_subjects_list=list(src.pd_subjects_list),
|
||||||
defense_tools_list=list(src.defense_tools_list),
|
defense_tools_list=list(src.defense_tools_list),
|
||||||
users_list=list(src.users_list),
|
users_list=list(src.users_list),
|
||||||
@@ -974,6 +987,22 @@ class DokoGenApp:
|
|||||||
|
|
||||||
dialog.wait_window()
|
dialog.wait_window()
|
||||||
|
|
||||||
|
def _add_pd_action_item(self):
|
||||||
|
item = simpledialog.askstring("Добавить действие", "Введите действие с ПДн:")
|
||||||
|
if item:
|
||||||
|
self.pd_actions_listbox.insert(tk.END, item)
|
||||||
|
|
||||||
|
def _select_from_actions_list(self):
|
||||||
|
"""Выбор действий с ПДн из JSON словаря."""
|
||||||
|
import json
|
||||||
|
dict_path = os.path.join(os.path.dirname(__file__), 'dictionaries', 'pd_actions.json')
|
||||||
|
try:
|
||||||
|
with open(dict_path, 'r', encoding='utf-8') as f:
|
||||||
|
items = json.load(f)
|
||||||
|
self._select_from_dialog("Выбор действий с персональными данными", items, self.pd_actions_listbox)
|
||||||
|
except Exception as e:
|
||||||
|
messagebox.showerror("Ошибка", f"Не удалось загрузить словарь: {e}")
|
||||||
|
|
||||||
def _select_from_pd_list(self):
|
def _select_from_pd_list(self):
|
||||||
"""Выбор ПДн из JSON словаря."""
|
"""Выбор ПДн из JSON словаря."""
|
||||||
import json
|
import json
|
||||||
|
|||||||
Reference in New Issue
Block a user