From 02713c310291c64bf080307983de799444c792ea Mon Sep 17 00:00:00 2001 From: Aurelian R Date: Mon, 30 Mar 2026 21:34:55 +0300 Subject: Add a toggle box for the permissions rules' forced mode. * Note: forced mode is autoenabled for a new permission rule --- src/msec/msecgui.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py index eeadabb..05d11a5 100755 --- a/src/msec/msecgui.py +++ b/src/msec/msecgui.py @@ -1414,6 +1414,9 @@ class MsecGui(Gtk.Window): else: force = "" self.permconfig.set(file, (user, group, perm, force, acl)) + # save to enable reload_config() to load the changes + standard_permconf = config.load_default_perms(log, self.base_level) + self.permconfig.save(standard_permconf) def add_permission_check(self, widget, model): """Adds a permission check""" @@ -1577,6 +1580,13 @@ class MsecGui(Gtk.Window): sizegroup2.add_widget(entry_perm) dialog.vbox.pack_start(hbox, False, False, 0) + check_force = Gtk.CheckButton(label=_("Force permissions")) + # new entries default to enforced permissions + check_force.set_active(bool(force) if path else True) + check_force.set_tooltip_text(_("When enabled, permissions will be enforced regardless of the current settings.")) + check_force.set_halign(Gtk.Align.CENTER) + dialog.vbox.pack_start(check_force, False, False, 0) + label = Gtk.Label(label=_("To enforce additional ACL (Access Control List) on file, specify them in the following format:\nuser1:acl,user2:acl\nRefer to 'man setfacl' for details.")) label.set_line_wrap(True) label.set_use_markup(True) @@ -1607,13 +1617,14 @@ class MsecGui(Gtk.Window): newgroup = entry_group.get_text() newperm = entry_perm.get_text() newacl = entry_acl.get_text() - dialog.destroy() + newforce = "force" if check_force.get_active() else "" # if acl is specified, the permissions will be enforced if newacl != "": - force = "force" + newforce = "force" + dialog.destroy() - self.permconfig.set(newfile, (newuser, newgroup, newperm, force, newacl)) + self.permconfig.set(newfile, (newuser, newgroup, newperm, newforce, newacl)) if not path: # adding new entry iter = model.append() @@ -1621,8 +1632,11 @@ class MsecGui(Gtk.Window): model.set(iter, self.COLUMN_USER, newuser) model.set(iter, self.COLUMN_GROUP, newgroup) model.set(iter, self.COLUMN_PERM, newperm) - model.set(iter, self.COLUMN_FORCE, True if force == "force" else False) + model.set(iter, self.COLUMN_FORCE, newforce == "force") model.set(iter, self.COLUMN_ACL, newacl) + # save to enable reload_config() to load the changes + standard_permconf = config.load_default_perms(log, self.base_level) + self.permconfig.save(standard_permconf) def option_changed(self, treeview, path, col, model): """Processes an option change""" -- cgit v1.2.1