Commit Graph

176 Commits

Author SHA1 Message Date
Chris PeBenito
1acfc41a70 Bool/Bounds/Category/SensitivityQuery: Add save/load functions.
For #97 and #98.
2016-06-13 08:40:43 -04:00
Chris PeBenito
83f232e55f MLS/RBACRuleQueryTab: Add tab save/restore functions.
For #97 and #98.
2016-06-09 09:35:27 -04:00
Chris PeBenito
da8a238ffc apol: Fix model headers so extra columns aren't added.
The section number (column header) is -1 when the section is hidden. The
defaultdict use would cause extra columns to be created since the column
count is based on the size of the headers object and -1 would add a new
entry.  Change headers to lists.
2016-06-08 07:26:32 -04:00
Chris PeBenito
7c540405ea TERuleQueryTab: Implement save/load tab settings functions.
Related to #97 and #98.
2016-06-01 12:55:50 -04:00
Chris PeBenito
dd98098eed SummaryTab: Implement save/load tab settings functions.
Related to #97 and #98.
2016-06-01 12:55:50 -04:00
Chris PeBenito
7b2c99cbfe apol: Implement core save/load tabs and workspace functions.
Still needs funtions on each individual tab for saving/loading settings.

Related to #97 and #98.
2016-06-01 12:55:50 -04:00
Chris PeBenito
dff3b19c29 ExcludeTypes: Keep the current scroll location when lists change.
Previously, when including or excluding a type, the lists would reset to
the top.  Now the current scroll location is preserved while updating the
lists.

Closes #124
2016-05-17 07:14:33 -04:00
Chris PeBenito
0ca66d2302 ExcludeTypes: Add combo box for filtering lists by attribute membership.
This by itself does not include/exclude types.

Closes #125
2016-05-11 08:44:55 -04:00
Chris PeBenito
f5c2ff345a ExcludeTypes: Convert from QListWidget to QListView for lists. 2016-05-11 08:44:55 -04:00
Chris PeBenito
6cce18f779 SEToolsListModel: Add append and remove functions. 2016-05-11 08:44:55 -04:00
Chris PeBenito
e5c3f24f69 DomainTransitionAnalysisTab: Add additional sorting for stable output. 2016-05-06 15:09:13 -04:00
Chris PeBenito
2ec9336009 apol: Use stylesheet to create a border around all QGroupBoxes.
Apply stylesheet in SEToolsWidget so all widgets will have the sheet
and it will propagate to child widgets.  This will add more visual
grouping to related options.  Adjust BooleanQueryTab so
the "Default State" group box title is completely shown.
2016-05-02 10:36:54 -04:00
Chris PeBenito
61613cf3f4 apol: adjust models to handle invalid indices in data().
Infrequently data() is called with an invalid index and then apol crashes.
2016-04-21 10:07:12 -04:00
Chris PeBenito
d75cc27e03 PermissionMapEditor: Python 2.7 fix
Python 2.7 list class does not have a .clear() function.

For #126
2016-04-20 12:40:25 -04:00
Chris PeBenito
a22fc0f669 ChooseAnalysis: Fix Ok button.
Also move double-click signal connection to .ui.
2016-04-20 09:55:10 -04:00
Chris PeBenito
2828db4a64 apol: Implement help menu
Populate with some help text from setools3.

Related to #114
2016-04-19 16:03:15 -04:00
Chris PeBenito
edde585e5f apol: Add an "about" dialog 2016-04-19 16:03:15 -04:00
Chris PeBenito
6b00b01e10 apol: implement browser for domain transition and infoflow analyses.
Closes #100
2016-04-18 10:01:55 -04:00
Chris PeBenito
fa32092a3c ApolMainWindow: improve file open/save dialogs 2016-04-15 11:19:17 -04:00
Chris PeBenito
d09bfdd09b apol: implement default query tab
Closes #121
2016-04-14 10:03:34 -04:00
Chris PeBenito
d8256cee4a apol: implement bounds query
Closes #120
2016-04-14 09:55:40 -04:00
Chris PeBenito
243e94e740 apol: InfoFlow/DTA tabs: remove cancel button from busy dialog.
Prevention/work-around for #119.
2016-04-13 13:05:22 -04:00
Chris PeBenito
3fd98337f7 apol: implement sensitivity query
Closes #88
2016-04-13 09:14:35 -04:00
Chris PeBenito
e3047740a6 apol: implement category query tab
Closes #76
2016-04-13 08:58:49 -04:00
Chris PeBenito
897427e5da InfoFlowAnalysisTab: add permission exclude option 2016-04-12 15:07:02 -04:00
Chris PeBenito
7938a89e0d apol: implement permission map editor
Closes #91
2016-04-12 15:02:45 -04:00
Chris PeBenito
c16653666a SummaryTab: disable irrelevant fields when MLS is disabled.
Also add tooltips restating that MLS is disabled.
2016-04-11 08:48:28 -04:00
Chris PeBenito
256adbbebc apol: implement SummaryTab
Closes #115
2016-04-10 10:46:34 -04:00
Chris PeBenito
153f2acd7a InfoFlowAnalysisTab: add perm_map property for getting map updates
Also fail to start analysis if no perm map is loaded.
2016-04-08 13:30:13 -04:00
Chris PeBenito
9d8258523d ExcludeTypes: revise to override QDialog accept method.
This is a more typical implementation.
2016-04-08 13:30:13 -04:00
Chris PeBenito
ce347e4537 ChooseAnalysis: revise design to support switching MLS on/off
Due to the previous design, if the user loaded several policies with
different MLS on/off settings, the MLS-only analyses would continue
to appear, even if MLS was not enabled in the policy.

Also revise to override QDialog accept and show methods to bring in line
with typical design.
2016-04-08 13:30:01 -04:00
Chris PeBenito
91046e8ddb apol: move ChooseAnalysis to its own module 2016-04-08 11:47:37 -04:00
Chris PeBenito
2b6b35e558 ApolMainWindow: change tab creation to put analysis widget in directly
No need to put an empty widget in.
2016-04-08 09:48:03 -04:00
Chris PeBenito
6502bae091 apol: revise match all vs. equal options
Where subset is available, keep "match all" option since that is more
likely to be used.  Otherwise, change GUI to "Equal" for correctness.
2016-04-05 15:26:49 -04:00
Chris PeBenito
f1a8077f79 apol: implement common query tab
Closes #77
2016-04-05 15:00:05 -04:00
Chris PeBenito
27bc09c0e3 apol: Implement constraint tab
Closes #78
2016-04-05 13:37:55 -04:00
Chris PeBenito
884480f8c4 apol: implement object class query
Closes #84
2016-04-04 13:59:35 -04:00
Chris PeBenito
729ba7ded7 apol: implement nodecon query tab
Closes #83
2016-04-04 10:36:23 -04:00
Chris PeBenito
e8f756a7ab ChooseAnalysis: fix fs_use_* capitalization 2016-04-04 10:32:26 -04:00
Chris PeBenito
73dd211cf9 UserTableModel: calculate column count on init 2016-04-04 10:26:02 -04:00
Chris PeBenito
a7fb2057d2 apol: change context queries to disable instead of hide MLS features
This keeps layouts cleaner. Change tooltips accordingly to inform user why
the fields are disabled.
2016-04-04 10:22:25 -04:00
Chris PeBenito
1370cfd20f apol: further simplify Table model subclasses 2016-04-01 14:50:25 -04:00
Chris PeBenito
b416862554 apol: rename models to make it clear they are tables 2016-04-01 14:03:41 -04:00
Chris PeBenito
14aa86c99d apol: implement portcon query
Closes #86
2016-04-01 10:59:54 -04:00
Chris PeBenito
57d446de1b NetifconQueryTab: fix log message on completion 2016-04-01 10:35:36 -04:00
Chris PeBenito
a158d412db apol: implement netif query
Closes #82
2016-04-01 09:06:37 -04:00
Chris PeBenito
f1f9c3186d Create new base class for table models.
Break up rule models into three files since RuleListModel doesn't make
sense any longer.
2016-04-01 09:00:17 -04:00
Chris PeBenito
807efb1e10 ApolMainWindow: handle closing the policy
* Close all tabs when closing the policy
* Close the policy if using the "open policy" action and policy load
  succeeds.
* Warn the user the above actions will close analysis tabs
  (if any tabs are open)
* Set analysis widgets to delete on close since widgets are not deleted
  by QTabWidget.clear() or .removeTab()
2016-03-31 11:34:27 -04:00
Chris PeBenito
95ecdf492a apol: implement initial SID query tab
Closes #81
2016-03-31 09:06:20 -04:00
Chris PeBenito
f335831de7 DTA/infoflow tabs: revise update completion signal connection
Bring in line with all other tabs.
2016-03-31 08:22:23 -04:00
Chris PeBenito
8f907fe0f0 ApolMainWindow: revise policy and permmap loading for status messages
Revise ordering of initialization so log messages about permisison map and
policy loading can be seen on the status bar.  Also fix exception handling
so a failure loading the policy specified on the CLI is handled.
2016-03-30 13:47:20 -04:00
Chris PeBenito
c6198c4fed apol: switch to new tabs 2016-03-30 11:00:40 -04:00
Chris PeBenito
c281b9410a apol: explicitly set initial result table sort orders. 2016-03-30 10:49:34 -04:00
Chris PeBenito
7434043500 FSUseTableModel: fix variable assignment scope issue in data() 2016-03-30 10:46:47 -04:00
Chris PeBenito
21c70d5b74 apol: implement GenfsconQueryTab
Closes #80
2016-03-30 10:43:54 -04:00
Chris PeBenito
945a6548e0 apol: move queries to common updater thread class
Move logger to main tab class and have the result class send the result
count back on the finished signal.
2016-03-30 10:26:38 -04:00
Chris PeBenito
c85d67f9e2 apol: implement fs_use_* query.
Closes #79
2016-03-30 08:34:09 -04:00
Chris PeBenito
17fdfc6012 setoolsgui models: fix header defaultdicts factory methods
Setting a None factory makes it work like a standard dictionary.  Use str
instead to get empty strings.
2016-03-29 11:11:21 -04:00
Chris PeBenito
b1c6652de0 apol: implement type attribute query tab.
Closes #89
2016-03-29 10:56:07 -04:00
Chris PeBenito
8f3a54eb37 apol: implement Boolean query tab.
Closes #75
2016-03-29 09:12:05 -04:00
Chris PeBenito
f5cace1420 setoolsgui: revise model implementations
Use defaultdicts for headers.  Simplify data member functions.
2016-03-29 09:12:05 -04:00
Chris PeBenito
8e2c8ca372 Implement extended permission rule support in TERuleQueryTab.
Related to #73
2016-03-28 09:33:24 -04:00
Chris PeBenito
5063edd111 Role/UserModel: revise strings. 2016-03-16 09:06:54 -04:00
Chris PeBenito
fbee99a747 Implement TypeQueryTab.
Closes #51
2016-03-16 08:47:55 -04:00
Chris PeBenito
425e4f735b setoolsgui: remove exceptions from models
Occasionally Qt calls these methods with column -1 and this exception
otherwise goes unhandled.  The default None return from Python functions
should be sufficient.
2016-03-15 10:41:40 -04:00
Chris PeBenito
fcabb2f0e6 Move generic GUI classes up to the setoolsgui package. 2016-03-14 15:25:07 -04:00
Chris PeBenito
8e5b4bc604 Implement RoleQueryTab
Closes #87
2016-03-14 12:38:30 -04:00
Chris PeBenito
15b2c275e0 user_detail: sort role list and add count. 2016-03-14 12:38:30 -04:00
Chris PeBenito
4c0162ffba DetailsPopup: move text box to the top prior to show(). 2016-03-14 12:38:30 -04:00
Chris PeBenito
a7232507a8 Rename UserList to GetDetailsListView for reuse. 2016-03-14 12:38:19 -04:00
Chris PeBenito
c697009f24 (DomainTransition|InfoFlow)AnalysisTab: add busy indicator when GUI could be unresponsive
Bring in line with other tabs.
2016-03-14 09:33:45 -04:00
Chris PeBenito
56b436fde6 ChooseAnalysis: show MLS-only tabs on MLS policies only. 2016-03-11 09:57:27 -05:00
Chris PeBenito
00807f846d TERuleListModel: Add conditional block column. 2016-03-11 09:16:59 -05:00
Chris PeBenito
3434618aef LogHandlerToSignal: set default formatter and INFO level in __init__. 2016-03-11 09:00:20 -05:00
Chris PeBenito
6c2acc3fdd Rename LogToSignalHandler to LogHandlerToSignal. 2016-03-07 13:40:37 -05:00
Chris PeBenito
faaf1a5b64 LogToSignalHandler: rename local emit() variable to prevent confusion 2016-03-07 13:25:44 -05:00
Chris PeBenito
d268e7e7f7 apol: more logging for the status bar 2016-03-07 13:21:36 -05:00
Chris PeBenito
3f4630c6f9 apol: use INFO logs to update status displays
Connect all setools and setoolsgui INFO+ messages and display them on
the statusbar.

Use each tab's analysis/query INFO+ messages and display them on the
"busy" status dialog box.
2016-03-07 12:04:08 -05:00
Chris PeBenito
85caea05e3 setoolsgui: add missing LogToSignalHandler class 2016-03-05 11:34:41 -05:00
Chris PeBenito
99c257f936 DTA/InfoflowTab: set errors for empty source/target types 2016-03-05 11:04:05 -05:00
Chris PeBenito
6a4cbf20d5 apol: log INFO messages to the status bar
Still keep the CLI messaging controlled by -v or --debug switches. For some
reason, the root logging had to be DEBUG for this to work, and
only as initialized by basicConfig.  Setting a NullHandler to DEBUG level
didn't work either.
2016-03-04 14:05:20 -05:00
Chris PeBenito
c017bd7cfa Apply logging best practices.
* Use __name__ for the logger name
* Add top-level library NullHandlers
2016-03-04 13:49:03 -05:00
Chris PeBenito
d7e8cf0701 apol: connect copy/paste menu options 2016-03-02 08:19:07 -05:00
Chris PeBenito
5cfab15fd7 apol: Add ctrl+w keyboard shortcut to close the current tab.
Also move the action definitions to apol.ui.
2016-03-01 13:41:29 -05:00
Chris PeBenito
7e8fcba695 apol: switch tabs to (more discoverable) check boxes for hiding UI elements
Also drop the results expander.
2016-02-29 10:51:24 -05:00
Chris PeBenito
c3759ec164 UserQuery: add missing user name field. 2016-02-26 09:05:43 -05:00
Chris PeBenito
5c39a1fd8c apol: reset busy dialog in setupUI()
For some reason, on Fedora the dialog will show before an explicit show()
is issued.
2016-02-26 08:58:09 -05:00
Chris PeBenito
16e03a3960 Implement UserQueryTab
Closes #90
2016-02-25 10:03:20 -05:00
Chris PeBenito
fe970680af RuleListModel: restore parent class for rule list models 2015-12-15 10:10:28 -05:00
Chris PeBenito
f89f875a62 ChooseAnalysis: Sort analysis options 2015-12-15 09:17:07 -05:00
Chris PeBenito
cf7b0789ba apol: add MLS rule query 2015-12-15 08:51:14 -05:00
Chris PeBenito
6c702179c4 apol: add RBAC rule query
RuleResultModel: give up trying to have a parent class. Remove.
2015-12-15 08:04:01 -05:00
Chris PeBenito
cff5de89e6 apol: add domain transition analysis tab 2015-12-14 09:53:59 -05:00
Chris PeBenito
8ab5498ba7 Misc fixes for pylint 1.5. 2015-12-01 09:38:08 -05:00
Chris PeBenito
a899206ab6 Implement UI for excluding types from an analysis/query.
Connect it up to InfoFlowAnalysisTab.
2015-09-02 15:35:32 -04:00
Chris PeBenito
2482fc5d10 apol: fix threading
The isInterruptionRequested flag on a QThread only resets after the thread
finishes.  The original implementation never had the thread finish until
the tab was closed, so if a user canceled an operation, each successive
time an analysis ran on that tab, it would immediately have a request
to interrupt.
2015-07-07 14:15:10 -04:00
Chris PeBenito
afab62934e TERuleQueryTab: Make the QProgressDialog more informative.
Also more agressively check cancelation, so processing will end sooner.
Force repaints to try to ensure the dialog text is updated, as for large
results, the GUI becomes unresponsive when resizing the table.
2015-07-07 11:38:35 -04:00
Chris PeBenito
c93fb0d175 InfoFlowAnalysisTab: connect min permission weight 2015-06-30 12:05:20 -04:00
Chris PeBenito
40bc6c9404 InfoFlowTab ResultsUpdater: missed flows into target type 2015-06-30 11:57:22 -04:00
Chris PeBenito
ee8a6a94c4 TERuleQueryTab ResultsUpdater: fix counter to use enumerate() 2015-06-30 11:19:08 -04:00