selinux/policycoreutils/gui/domainsPage.py
Jason Zaman 789d0ebbf9 policycoreutils: Fix PEP8 issues
When trying to get policycoreutils working in python3, I kept running
into TabErrors:

    Traceback (most recent call last):
      File "/usr/lib/python-exec/python3.3/semanage", line 27, in <module>
        import seobject
      File "/usr/lib64/python3.3/site-packages/seobject.py", line 154
        context = "%s%s" % (filler, raw)
                                       ^
    TabError: inconsistent use of tabs and spaces in indentation

Python3 is a lot stricter than python2 regarding whitespace and looks like
previous commits mixed the two.  When fixing this, I took the chance to fix
other PEP8 style issues at the same time.

This commit was made using:
$ file $(find . -type f) | grep -i python | sed 's/:.*$//' > pyfiles
$ autopep8 --in-place --ignore=E501,E265 $(cat pyfiles)

The ignore E501 is long lines since there are many that would be wrapped
otherwise, and E265 is block comments that start with ## instead of just #.

Signed-off-by: Jason Zaman <jason@perfinion.com>
2015-07-24 16:07:13 +08:00

157 lines
5.0 KiB
Python

## domainsPage.py - show selinux domains
## Copyright (C) 2009 Red Hat, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
## Author: Dan Walsh
import string
import gtk
import gtk.glade
import os
import commands
import gobject
import sys
import seobject
import selinux
from semanagePage import *
from sepolicy import get_all_entrypoint_domains
##
## I18N
##
PROGNAME = "policycoreutils"
import gettext
gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
gettext.textdomain(PROGNAME)
try:
gettext.install(PROGNAME,
localedir="/usr/share/locale",
unicode=False,
codeset='utf-8')
except IOError:
import __builtin__
__builtin__.__dict__['_'] = unicode
class domainsPage(semanagePage):
def __init__(self, xml):
semanagePage.__init__(self, xml, "domains", _("Process Domain"))
self.domain_filter = xml.get_widget("domainsFilterEntry")
self.domain_filter.connect("focus_out_event", self.filter_changed)
self.domain_filter.connect("activate", self.filter_changed)
self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
self.view.set_model(self.store)
self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
col = gtk.TreeViewColumn(_("Domain Name"), gtk.CellRendererText(), text=0)
col.set_sort_column_id(0)
col.set_resizable(True)
self.view.append_column(col)
self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
col = gtk.TreeViewColumn(_("Mode"), gtk.CellRendererText(), text=1)
col.set_sort_column_id(1)
col.set_resizable(True)
self.view.append_column(col)
self.view.get_selection().connect("changed", self.itemSelected)
self.permissive_button = xml.get_widget("permissiveButton")
self.enforcing_button = xml.get_widget("enforcingButton")
self.domains = get_all_entrypoint_domains()
self.load()
def get_modules(self):
modules = []
fd = os.popen("semodule -l")
mods = fd.readlines()
fd.close()
for l in mods:
modules.append(l.split()[0])
return modules
def load(self, filter=""):
self.filter = filter
self.store.clear()
try:
modules = self.get_modules()
for domain in self.domains:
if not self.match(domain, filter):
continue
iter = self.store.append()
self.store.set_value(iter, 0, domain)
t = "permissive_%s_t" % domain
if t in modules:
self.store.set_value(iter, 1, _("Permissive"))
else:
self.store.set_value(iter, 1, "")
except:
pass
self.view.get_selection().select_path((0,))
def itemSelected(self, selection):
store, iter = selection.get_selected()
if iter == None:
return
p = store.get_value(iter, 1) == _("Permissive")
self.permissive_button.set_sensitive(not p)
self.enforcing_button.set_sensitive(p)
def deleteDialog(self):
# Do nothing
return self.delete()
def delete(self):
selection = self.view.get_selection()
store, iter = selection.get_selected()
domain = store.get_value(iter, 0)
try:
self.wait()
status, output = commands.getstatusoutput("semanage permissive -d %s_t" % domain)
self.ready()
if status != 0:
self.error(output)
else:
domain = store.set_value(iter, 1, "")
self.itemSelected(selection)
except ValueError, e:
self.error(e.args[0])
def propertiesDialog(self):
# Do nothing
return
def addDialog(self):
# Do nothing
return self.add()
def add(self):
selection = self.view.get_selection()
store, iter = selection.get_selected()
domain = store.get_value(iter, 0)
try:
self.wait()
status, output = commands.getstatusoutput("semanage permissive -a %s_t" % domain)
self.ready()
if status != 0:
self.error(output)
else:
domain = store.set_value(iter, 1, _("Permissive"))
self.itemSelected(selection)
except ValueError, e:
self.error(e.args[0])