From 8c4d8bbf7b82845f15d446bc592221d28bf9f76d Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 14 Apr 2023 15:12:27 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=20=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B1=D0=B2=D0=B5=D1=80=D1=82?= =?UTF-8?q?=D0=BA=D1=83=20=D0=B4=D0=BB=D1=8F=20=D0=B1=D1=8D=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/CMakeLists.txt | 3 +++ source/controler.cc | 2 ++ source/controler.h | 6 ++++++ source/global_var.h | 2 +- source/main.cc | 1 - source/my_plug.cc | 2 +- source/my_plug.h | 3 ++- source/system_cmd_quotas.cc | 36 +++++++++++++++++--------------- source/system_cmd_quotas.h | 4 ++-- source/ubl-settings-diskquota.cc | 7 ++++--- source/ubl-settings-diskquota.h | 9 ++++---- ubl-settings-diskquota.glade | 2 ++ 12 files changed, 46 insertions(+), 31 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 86480bb..47b4319 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -20,6 +20,9 @@ set(SOURCE_FILES ubl-settings-diskquota.cc system_cmd_quotas.cc system_cmd_quotas.h + controler.h + global_var.h + controler.cc my_device.h my_device.cc project_lib.h diff --git a/source/controler.cc b/source/controler.cc index e69de29..3923ec1 100644 --- a/source/controler.cc +++ b/source/controler.cc @@ -0,0 +1,2 @@ +#include "controler.h" +Back_Back::Back_Back() {} \ No newline at end of file diff --git a/source/controler.h b/source/controler.h index e69de29..eeacf19 100644 --- a/source/controler.h +++ b/source/controler.h @@ -0,0 +1,6 @@ +#include "system_cmd_quotas.h" + +class Back_Back{ + public: + Back_Back(); +}; \ No newline at end of file diff --git a/source/global_var.h b/source/global_var.h index e88d924..22f6316 100644 --- a/source/global_var.h +++ b/source/global_var.h @@ -1,3 +1,3 @@ #include "project_lib.h" -#include "my_tupe.h" \ No newline at end of file +#include "my_type.h" diff --git a/source/main.cc b/source/main.cc index fc79f20..1d97603 100644 --- a/source/main.cc +++ b/source/main.cc @@ -1,4 +1,3 @@ -#include "ubl-settings-diskquota.h" #include "my_plug.h" void pars_flag(int index_start, int argc, char* argv[]); diff --git a/source/my_plug.cc b/source/my_plug.cc index ba95ed8..6294ab4 100644 --- a/source/my_plug.cc +++ b/source/my_plug.cc @@ -2,7 +2,7 @@ #define MY_PLUG_H #include "my_plug.h" -#include "ubl-settings-diskquota.h" + CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) : Glib::OptionGroup{p_name, p_description, p_help} { diff --git a/source/my_plug.h b/source/my_plug.h index 7b98857..20a0916 100644 --- a/source/my_plug.h +++ b/source/my_plug.h @@ -1,5 +1,6 @@ #include "project_lib.h" - +#include "ubl-settings-diskquota.h" +#include "global_var.h" class CmdArgParser : public Glib::OptionGroup { public: diff --git a/source/system_cmd_quotas.cc b/source/system_cmd_quotas.cc index 1b2ad1e..c4da725 100644 --- a/source/system_cmd_quotas.cc +++ b/source/system_cmd_quotas.cc @@ -21,8 +21,7 @@ void Quotas_sys::format_cmd_quotas_system(struct struct_quotas& _struct_quota) { (*map_gui_cfg)[key] = value; } -void Quotas_sys::off_quota_ubconfig(Gtk::ComboBoxText* combo_box, string quota_type) { - string partition = combo_box->get_active_text(); +void Quotas_sys::off_quota_ubconfig(string partition, string quota_type) { string key = "DISK_QUOTA[" + quota_type + ":" + partition + "]"; string value = "disable"; (*map_gui_cfg)[key] = value; @@ -87,6 +86,7 @@ struct status_quotas Quotas_sys::check_on_quotas_system_2_hw(string params) { return status; } + bool Quotas_sys::on_quota_hw(string partition, string cmd_hw, string cmd_sw) { if (map_hw_or_sw.find(partition) != map_hw_or_sw.end()) { if (map_hw_or_sw[partition] == "hw") { @@ -103,57 +103,59 @@ bool Quotas_sys::on_quota_hw(string partition, string cmd_hw, string cmd_sw) { return false; } } - return false; } + bool Quotas_sys::on_quota_sw(string partition, int mode) { if (map_hw_or_sw.find(partition) != map_hw_or_sw.end()) { string cmd = ""; if (mode == 0) { cmd += "mount -vo remount,usrquota " + partition; - cmd += "quotacheck -ucm " + partition; - cmd += "quotaon -uv " + partition; + cmd += "; quotacheck -ucm " + partition; + cmd += "; quotaon -uv " + partition; } else if (mode == 1) { - cmd += "mount -vo remount,grpquota " + partition; - cmd += "quotacheck -gcm " + partition; - cmd += "quotaon -gv " + partition; + cmd += "; mount -vo remount,grpquota " + partition; + cmd += "; quotacheck -gcm " + partition; + cmd += "; quotaon -gv " + partition; } else if (mode == 2) { - cmd += "quotaon -ugPv " + partition; + cmd += "; quotaon -ugPv " + partition; } else if (mode == 3) { - cmd += "quotaon -augPv"; + cmd += "; quotaon -augPv"; } else { return false; } - cmd += "ubconfig set config SERVICESSTART+=,quotaon.service"; + cmd += "; ubconfig set config SERVICESSTART+=,quotaon.service"; obj_process_system.call(cmd, ""); return true; } return false; - } -void Quotas_sys::off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type) { - string partition = combo_box->get_active_text(); +bool Quotas_sys::off_quota_system(string partition, string quota_hw, string quota_sw) { string cmd = ""; if (map_hw_or_sw.find(partition) != map_hw_or_sw.end()) { if (map_hw_or_sw[partition] == "hw") { - cmd = "tune2fs -Q ^" + quota_type + " " + partition; + cmd = quota_hw + " " + partition; + return true; } else if (map_hw_or_sw[partition] == "sw") { - cmd = "quotaoff -u " + quota_type.substr(0,1) + " " + partition; - + cmd = quota_sw + " " + partition; + return true; } else { // TODO: // Убрать после тестирования throw "Опа цэ!"; + return false; } obj_process_system.call(cmd, ""); } + return false; } + } \ No newline at end of file diff --git a/source/system_cmd_quotas.h b/source/system_cmd_quotas.h index 71d8f08..a75b458 100644 --- a/source/system_cmd_quotas.h +++ b/source/system_cmd_quotas.h @@ -18,8 +18,8 @@ class Quotas_sys { void set_map_gui(map_str_str &map_gui); void format_cmd_quotas_ubconfig(struct struct_quotas& _struct_quota); void format_cmd_quotas_system(struct struct_quotas& _struct_quota); - void off_quota_ubconfig(Gtk::ComboBoxText* combo_box, string quota_type); - void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type); + void off_quota_ubconfig(string partition, string quota_type); + bool off_quota_system(string partition, string quota_hw, string quota_sw); bool check_on_quotas_system(string cmd); struct status_quotas check_on_quotas_system_2_hw(string params); bool on_quota_hw(string partition, string cmd_hw, string cmd_sw); diff --git a/source/ubl-settings-diskquota.cc b/source/ubl-settings-diskquota.cc index af9fcc1..ded33a9 100755 --- a/source/ubl-settings-diskquota.cc +++ b/source/ubl-settings-diskquota.cc @@ -301,6 +301,7 @@ void MainWindow::add_CSS() { } headLabel_css->add_class("textHead"); } + /* void init_treeview_user() { @@ -478,8 +479,8 @@ void MainWindow::get_builder() { void MainWindow::event() { quotegroupSaveButton->signal_clicked().connect([&]() {}); - btnDeleteGroupQuota->signal_clicked().connect([&]() {obj_quotas_sys.off_quota_ubconfig(groupsDeviceCombo, "grpquota");}); - btnDeleteUserQuota->signal_clicked().connect([&]() {obj_quotas_sys.off_quota_ubconfig(usersDeviceCombo, "usrquota");}); + btnDeleteGroupQuota->signal_clicked().connect([&]() {obj_quotas_sys.off_quota_ubconfig(groupsDeviceCombo->get_active_text(), "grpquota");}); + btnDeleteUserQuota->signal_clicked().connect([&]() {obj_quotas_sys.off_quota_ubconfig(usersDeviceCombo->get_active_text(), "usrquota");}); btnLoadGlob->signal_activate().connect([&]() {this->load_global_cfg();}); btnLoadLocal->signal_activate().connect([&]() {this->load_system_cfg();}); btnSynopsis->signal_activate().connect([&]() {this->synopsis_show();}); @@ -516,7 +517,7 @@ void MainWindow::event() { ,quotegroupFilesHarLimitLabel); }); quotegroupCancelButton->signal_clicked().connect([&]() {QuotasEditWindow->hide();}); - QuotasEditWindow->show(); + // QuotasEditWindow->show(); } void MainWindow::wrapper_settings_quotas_temp(string save_user_or_group) { diff --git a/source/ubl-settings-diskquota.h b/source/ubl-settings-diskquota.h index e9b4e89..d28e77e 100644 --- a/source/ubl-settings-diskquota.h +++ b/source/ubl-settings-diskquota.h @@ -7,11 +7,8 @@ #include "my_process.h" #include "my_type.h" #include "my_device.h" -#include "system_cmd_quotas.h" - - -extern int socket_ext_id_I; -extern int socket_trd_id_I; +#include "controler.h" +#include "global_var.h" using namespace std; @@ -23,6 +20,8 @@ extern const string path_css; extern const string path_img_head_background; extern string version_application; +extern int socket_ext_id_I; +extern int socket_trd_id_I; class MainWindow : public Gtk::ApplicationWindow { public: class ModelColumns : public Gtk::TreeModel::ColumnRecord { diff --git a/ubl-settings-diskquota.glade b/ubl-settings-diskquota.glade index 5cb60aa..21a4d56 100644 --- a/ubl-settings-diskquota.glade +++ b/ubl-settings-diskquota.glade @@ -615,7 +615,9 @@ False + center com.ublinux.ubl-settings-diskquota + center True