[apparmor] [patch] [3/7] Copy code to ask for adding includes to aa.py ask_the_questions()
Christian Boltz
apparmor at cboltz.de
Sun Jan 15 15:24:09 UTC 2017
Hello,
$subject.
This is an exact copy of the code in aa-mergeprof (with whitespace changed).
[ 03-aa.py-ask-for-includes.diff ]
--- utils/apparmor/aa.py 2017-01-11 22:59:32.112384000 +0100
+++ utils/apparmor/aa.py 2017-01-14 22:56:12.081131108 +0100
@@ -1,6 +1,6 @@
# ----------------------------------------------------------------------
# Copyright (C) 2013 Kshitij Gupta <kgupta8592 at gmail.com>
-# Copyright (C) 2014-2016 Christian Boltz <apparmor at cboltz.de>
+# Copyright (C) 2014-2017 Christian Boltz <apparmor at cboltz.de>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
@@ -1520,6 +1520,39 @@
debug_logger.debug("Ignoring events for non-existing profile %s" % combine_name(profile, hat))
continue
+ #Add the includes from the other profile to the user profile
+ done = False
+
+ options = []
+ for inc in log_dict[aamode][profile][hat]['include'].keys():
+ if not inc in aa[profile][hat]['include'].keys():
+ options.append('#include <%s>' %inc)
+
+ default_option = 1
+
+ q = aaui.PromptQuestion()
+ q.options = options
+ q.selected = default_option - 1
+ q.headers = [_('File includes'), _('Select the ones you wish to add')]
+ q.functions = ['CMD_ALLOW', 'CMD_IGNORE_ENTRY', 'CMD_ABORT', 'CMD_FINISHED']
+ q.default = 'CMD_ALLOW'
+
+ while not done and options:
+ ans, selected = q.promptUser()
+ if ans == 'CMD_IGNORE_ENTRY':
+ done = True
+ elif ans == 'CMD_ALLOW':
+ selection = options[selected]
+ inc = re_match_include(selection)
+ deleted = apparmor.aa.delete_duplicates(aa[profile][hat], inc)
+ aa[profile][hat]['include'][inc] = True
+ options.pop(selected)
+ aaui.UI_Info(_('Adding %s to the file.') % selection)
+ if deleted:
+ aaui.UI_Info(_('Deleted %s previous matching profile entries.') % deleted)
+ elif ans == 'CMD_FINISHED':
+ return
+
for ruletype in ruletypes:
for rule_obj in log_dict[aamode][profile][hat][ruletype].rules:
# XXX aa-mergeprof also has this code - if you change it, keep aa-mergeprof in sync!
Regards,
Christian Boltz
--
[Fontlinge für Linux 0.0.2] Warte nur ab, die 0.0.3 funktioniert sogar,
wenn man nicht "ratti" heisst. ;-) [Ratti]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20170115/70497cb0/attachment-0001.pgp>
More information about the AppArmor
mailing list