From 38193acd01606b995bc02c0b90b42af820649dbd Mon Sep 17 00:00:00 2001 From: Roberto Rivera Date: Wed, 26 Oct 2016 16:31:40 -0500 Subject: [PATCH] Add pagination for whitelist and ignore list Network Whitelist and Ignore List tables have been broken out into their own components and now support pagination via PaginatedTable. Fixes #167 --- .../ignore_list_component.dart | 49 +++++++++++++++++ .../ignore_list_component.html | 53 +++++++++++++++++++ .../network_whitelist_component.dart | 49 +++++++++++++++++ .../network_whitelist_component.html | 53 +++++++++++++++++++ .../settings_component.dart | 43 ++------------- .../settings_component.html | 52 +----------------- dart/lib/security_monkey.dart | 4 ++ 7 files changed, 214 insertions(+), 89 deletions(-) create mode 100644 dart/lib/component/settings/ignore_list_component/ignore_list_component.dart create mode 100644 dart/lib/component/settings/ignore_list_component/ignore_list_component.html create mode 100644 dart/lib/component/settings/network_whitelist_component/network_whitelist_component.dart create mode 100644 dart/lib/component/settings/network_whitelist_component/network_whitelist_component.html diff --git a/dart/lib/component/settings/ignore_list_component/ignore_list_component.dart b/dart/lib/component/settings/ignore_list_component/ignore_list_component.dart new file mode 100644 index 000000000..847662652 --- /dev/null +++ b/dart/lib/component/settings/ignore_list_component/ignore_list_component.dart @@ -0,0 +1,49 @@ +part of security_monkey; + +@Component( + selector: 'ignorelist-cmp', + templateUrl: 'packages/security_monkey/component/settings/ignore_list_component/ignore_list_component.html', + //cssUrl: const ['/css/bootstrap.min.css'] + useShadowDom: false +) +class IgnoreListComponent extends PaginatedTable { + UsernameService us; + Router router; + List ignorelist; + ObjectStore store; + + IgnoreListComponent(this.router, this.store, this.us) { + ignorelist = new List(); + list(); + } + + get signed_in => us.signed_in; + + void list() { + store.list(IgnoreEntry, params: { + "count": ipp_as_int, + "page": currentPage + }).then((ignorelist) { + super.setPaginationData(ignorelist.meta); + this.ignorelist = ignorelist; + super.is_loaded = true; + }); + } + + void createIgnoreEntry() { + router.go('createignoreentry', {}); + } + + void deleteIgnoreList(ignoreitem) { + store.delete(ignoreitem).then( (_) { + store.list(IgnoreEntry).then( (ignoreitems) { + this.ignorelist = ignoreitems; + }); + }); + } + + String url_encode(input) => param_to_url(input); + + get isLoaded => super.is_loaded; + get isError => super.is_error; +} diff --git a/dart/lib/component/settings/ignore_list_component/ignore_list_component.html b/dart/lib/component/settings/ignore_list_component/ignore_list_component.html new file mode 100644 index 000000000..d81402627 --- /dev/null +++ b/dart/lib/component/settings/ignore_list_component/ignore_list_component.html @@ -0,0 +1,53 @@ +
+
+
Ignore List {{ items_displayed() }} of {{ totalItems }}
+
+

Loading . . .

+
+ {{err_message}} +
+
+
+ + + + + + + + + + + + + + +
PrefixNotesTechnology
{{ignoreitem.prefix}}{{ignoreitem.prefix}}{{ignoreitem.notes}}{{ignoreitem.technology}}
+
+ +
+
diff --git a/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.dart b/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.dart new file mode 100644 index 000000000..25b5a156b --- /dev/null +++ b/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.dart @@ -0,0 +1,49 @@ +part of security_monkey; + +@Component( + selector: 'whitelist-cmp', + templateUrl: 'packages/security_monkey/component/settings/network_whitelist_component/network_whitelist_component.html', + //cssUrl: const ['/css/bootstrap.min.css'] + useShadowDom: false +) +class NetworkWhitelistComponent extends PaginatedTable { + UsernameService us; + Router router; + List cidrs; + ObjectStore store; + + NetworkWhitelistComponent(this.router, this.store, this.us) { + cidrs = new List(); + list(); + } + + get signed_in => us.signed_in; + + void list() { + store.list(NetworkWhitelistEntry, params: { + "count": ipp_as_int, + "page": currentPage + }).then((cidrs) { + super.setPaginationData(cidrs.meta); + this.cidrs = cidrs; + super.is_loaded = true; + }); + } + + void createWhitelist() { + router.go('createwhitelist', {}); + } + + void deleteWhitelist(NetworkWhitelistEntry cidr){ + store.delete(cidr).then( (_) { + store.list(NetworkWhitelistEntry).then( (cidrs) { + this.cidrs = cidrs; + }); + }); + } + + String url_encode(input) => param_to_url(input); + + get isLoaded => super.is_loaded; + get isError => super.is_error; +} diff --git a/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.html b/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.html new file mode 100644 index 000000000..b11c4bf6e --- /dev/null +++ b/dart/lib/component/settings/network_whitelist_component/network_whitelist_component.html @@ -0,0 +1,53 @@ +
+
+
Network Whitelist {{ items_displayed() }} of {{ totalItems }}
+
+

Loading . . .

+
+ {{err_message}} +
+
+
+ + + + + + + + + + + + + + +
Network NameCIDRNotes
{{cidr.name}}{{cidr.name}}{{cidr.cidr}}{{cidr.notes}}
+
+ +
+
diff --git a/dart/lib/component/settings_component/settings_component.dart b/dart/lib/component/settings_component/settings_component.dart index cf7a7bd1f..c2ff1b5eb 100644 --- a/dart/lib/component/settings_component/settings_component.dart +++ b/dart/lib/component/settings_component/settings_component.dart @@ -10,35 +10,24 @@ class SettingsComponent extends PaginatedTable { UsernameService us; Router router; List accounts; - List cidrs; - List ignorelist; List auditorlist; ObjectStore store; UserSetting user_setting; - + SettingsComponent(this.router, this.store, this.us) { - cidrs = new List(); accounts = new List(); store.customQueryOne(UserSetting, new CustomRequestParams(method: "GET", url: "$API_HOST/settings", withCredentials: true)).then((user_setting) { this.user_setting = user_setting; list(); }); - store.list(NetworkWhitelistEntry).then( (cidrs) { - this.cidrs = cidrs; - }); - - store.list(IgnoreEntry).then( (ignoreItems) { - this.ignorelist = ignoreItems; - }); - store.list(AuditorSetting).then( (auditorItems) { this.auditorlist = auditorItems; }); } - + get signed_in => us.signed_in; - + void list() { store.list(Account, params: { "count": ipp_as_int, @@ -104,30 +93,6 @@ class SettingsComponent extends PaginatedTable { router.go('createaccount', {}); } - void createWhitelist() { - router.go('createwhitelist', {}); - } - - void deleteWhitelist(NetworkWhitelistEntry cidr){ - store.delete(cidr).then( (_) { - store.list(NetworkWhitelistEntry).then( (cidrs) { - this.cidrs = cidrs; - }); - }); - } - - void createIgnoreEntry() { - router.go('createignoreentry', {}); - } - - void deleteIgnoreList(ignoreitem) { - store.delete(ignoreitem).then( (_) { - store.list(IgnoreEntry).then( (ignoreitems) { - this.ignorelist = ignoreitems; - }); - }); - } - void disableAuditor(auditor) { auditor.disabled = true; store.update(auditor); @@ -137,7 +102,7 @@ class SettingsComponent extends PaginatedTable { auditor.disabled = false; store.update(auditor); } - + String url_encode(input) => param_to_url(input); get isLoaded => super.is_loaded; diff --git a/dart/lib/component/settings_component/settings_component.html b/dart/lib/component/settings_component/settings_component.html index 1a5890738..b86453ba5 100644 --- a/dart/lib/component/settings_component/settings_component.html +++ b/dart/lib/component/settings_component/settings_component.html @@ -107,59 +107,11 @@
Daily Email

-
-
-
Network Whitelist {{cidrs.length}} of {{cidrs.length}}
-
-

Loading . . .

-
-
- - - - - - - - - - - - - - -
Network NameCIDRNotes
{{cidr.name}}{{cidr.name}}{{cidr.cidr}}{{cidr.notes}}
-
-
-
+

-
-
-
Ignore List {{ignorelist.length}} of {{ignorelist.length}}
-
-

Loading . . .

-
-
- - - - - - - - - - - - - - -
PrefixNotesTechnology
{{ignoreitem.prefix}}{{ignoreitem.prefix}}{{ignoreitem.notes}}{{ignoreitem.technology}}
-
-
-
+

diff --git a/dart/lib/security_monkey.dart b/dart/lib/security_monkey.dart index d6ea7f32b..bc4075e6d 100644 --- a/dart/lib/security_monkey.dart +++ b/dart/lib/security_monkey.dart @@ -67,6 +67,8 @@ part 'component/ignore_entry_component/ignore_entry_component.dart'; part 'component/username_component/username_component.dart'; part 'component/settings/auditor_settings_component/auditor_settings_component.dart'; part 'component/settings/user_role_component/user_role_component.dart'; +part 'component/settings/network_whitelist_component/network_whitelist_component.dart'; +part 'component/settings/ignore_list_component/ignore_list_component.dart'; class SecurityMonkeyModule extends Module { @@ -101,6 +103,8 @@ class SecurityMonkeyModule extends Module { bind(UsernameComponent); bind(AuditorSettingsComponent); bind(UserRoleComponent); + bind(NetworkWhitelistComponent); + bind(IgnoreListComponent); // Services bind(JustificationService);