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