Title: [opsview] [13260] Merge of 12675 from DEV-professional

Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10932,11025,11035,11360-11612,11798-11799,11920,12075-12076,12096,12189,12207,12232,12266,12288,12322,12334,12355,12372,12401-12406,12428,12491,12523,12539-12540,12544,12546,12555,12580,12583,12599-12600,12609,12611,12614-12615,12618,12624,12630-12631,12633,12643,12645-12646,12649,12653-12654,12657-12658,12660,12662-12663,12666,12668,12744,13126-
 13127,13211
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/BRAN-4.3:12423-12426
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837
   + /branches/DEV-capside/release-3.9.0:6365-6370
/branches/DEV-extra-notification-data:6734-6746
/branches/DEV-odw-calculations:9016-9160
/branches/DEV-restapi-monitoringservers:9778
/branches/DEV-snmp-multi:7324-7376
/branches/US187:9403-9479
/branches/US198b:8875-8994
/branches/US310:9851-9873
/branches/US539:12178-12182
/branches/enterprise/BRAN-3.14:6874,6882,6956
/branches/enterprise/DEV-professional:6494-8475,8477-8478,8486,8490,8492,8494,8499-8500,8515,8518-8519,8524,8527-8529,8531-8532,8536,8538,8540-8544,8547-8552,8554,8557,8600-8601,8637,8749,8772,8897,8917,8944-8945,8947,8950-8952,8967,8969,8979,8982,8987,8998,9006,9008,9011,9013,9026,9033-9036,9038,9040,9042,9044,9048,9050-9053,9062,9064-9065,9069,9078,9081,9088,9096,9099-9101,9103,9105,9115,9118,9347,9353-9354,9411,9432,9445,9486,9538-9550,9569-9571,9620,9635,9637-9638,9645-9647,9693,9699,9721,9814,9825,9857,9879,9881,9939,10002,10029,10038-10041,10070,10086,10093,10345,10347,10388,10407,10481,10549,10560-10562,10565,10568,10571,10577,10932,11025,11035,11360-11612,11798-11799,11920,12075-12076,12096,12189,12207,12232,12266,12288,12322,12334,12355,12372,12401-12406,12428,12491,12523,12539-12540,12544,12546,12555,12580,12583,12599-12600,12609,12611,12614-12615,12618,12624,12630-12631,12633,12643,12645-12646,12649,12653-12654,12657-12658,12660,12662-12663,12666,12668,12744,12765,
 13126-13127,13211
/branches/nagvis-iframe:9764-9786
/branches/opsview2runtime:10960-11258
/branches/opsview2runtime_xs:11279-11303
/branches/us168:8759,8762-8763,8766-8768,8770,8774-8777,8794,8798-8799,8801-8803,8821-8822,8834,8837-8838,8932,8937,8947,8969,8977,8981,9004,9007,9009-9010,9012,9024,9049
/commercial/branches/BRAN-4.2:10944,11017
/commercial/branches/BRAN-4.3:12423-12426
/commercial/branches/US306-slaves:9804-9823
/commercial/branches/US307-network-map:9685-9837

Modified: trunk/opsview-core/bin/db_opsview
===================================================================
--- trunk/opsview-core/bin/db_opsview	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-core/bin/db_opsview	2013-08-15 17:15:05 UTC (rev 13260)
@@ -1236,6 +1236,7 @@
     INSERT INTO schema_version (major_release, version, created_at) VALUES ('20130521notmeth', 'install', NOW());
     INSERT INTO schema_version (major_release, version, created_at) VALUES ('20130612accesses', 'install', NOW());
     INSERT INTO schema_version (major_release, version, created_at) VALUES ('20130814surv', 'install', NOW());
+    INSERT INTO schema_version (major_release, version, created_at) VALUES ('20130702nagvis', 'install', NOW());
 
 EOF
 	populate_db
@@ -1274,6 +1275,7 @@
     INSERT INTO access (id, name) VALUES (27, "CONFIGUREROLES");
     INSERT INTO access (id, name) VALUES (28, "CONFIGURECONTACTS");
     INSERT INTO access (id, name) VALUES (29, "CONFIGUREHOSTGROUPS");
+    INSERT INTO access (id, name) VALUES (30, "NAGVIS");
 
 
 	# Role information is in initial_opsview.sql

Modified: trunk/opsview-core/import/initial_opsview.sql
===================================================================
--- trunk/opsview-core/import/initial_opsview.sql	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-core/import/initial_opsview.sql	2013-08-15 17:15:05 UTC (rev 13260)
@@ -360,7 +360,7 @@
 
 LOCK TABLES `modules` WRITE;
 /*!40000 ALTER TABLE `modules` DISABLE KEYS */;
-INSERT INTO `modules` (`id`, `name`, `url`, `description`, `access`, `enabled`, `priority`, `version`, `namespace`, `installed`) VALUES (1,'Nagvis','/modules/nagvis','Nagios Core Visualisation','',1,1,'','com.opsview.modules.nagvis',1);
+INSERT INTO `modules` (`id`, `name`, `url`, `description`, `access`, `enabled`, `priority`, `version`, `namespace`, `installed`) VALUES (1,'Nagvis','/modules/nagvis','Nagios Core Visualisation','NAGVIS',1,1,'','com.opsview.modules.nagvis',1);
 INSERT INTO `modules` (`id`, `name`, `url`, `description`, `access`, `enabled`, `priority`, `version`, `namespace`, `installed`) VALUES (2,'MRTG','/status/network_traffic','Multi Router Traffic Grapher','',1,2,'','com.opsview.modules.mrtg',1);
 INSERT INTO `modules` (`id`, `name`, `url`, `description`, `access`, `enabled`, `priority`, `version`, `namespace`, `installed`) VALUES (3,'NMIS','/cgi-nmis/nmiscgi.pl','Network Management Information System','ADMINACCESS',0,3,'','com.opsview.modules.nmis',1);
 INSERT INTO `modules` (`id`, `name`, `url`, `description`, `access`, `enabled`, `priority`, `version`, `namespace`, `installed`) VALUES (4,'Reports','http://www.opsview.com/products/enterprise-modules/reports','Opsview Reports Module','REPORTUSER',1,4,'','com.opsview.modules.reports',0);

Modified: trunk/opsview-core/installer/apache_proxy.conf
===================================================================
--- trunk/opsview-core/installer/apache_proxy.conf	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-core/installer/apache_proxy.conf	2013-08-15 17:15:05 UTC (rev 13260)
@@ -84,9 +84,13 @@
    AuthType None
    TKTAuthLoginURL /login?app=nagvis
    TKTAuthTimeout 86400s
-   # Set below if you are getting "ticket is invalid" messages and you have multiple proxies in front of Opsview
-   # You also need to set Opsview Web to ignore ip: http://docs.opsview.com/doku.php?id=opsview-core:webauthentication
+   # Set TKTAuthIgnoreIP if you are getting "ticket is invalid" messages and you
+   # have multiple proxies in front of Opsview
+   # You also need to set Opsview Web to ignore ip:
+   #   http://docs.opsview.com/doku.php?id=opsview-core:webauthentication
    #TKTAuthIgnoreIP on
+   TKTAuthToken NAGVIS
+   TKTAuthUnauthURL /access_denied?include_header=0
    require valid-user
 </Location>
 

Modified: trunk/opsview-core/installer/upgradedb_opsview.pl
===================================================================
--- trunk/opsview-core/installer/upgradedb_opsview.pl	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-core/installer/upgradedb_opsview.pl	2013-08-15 17:15:05 UTC (rev 13260)
@@ -4798,6 +4798,25 @@
 
 }
 
+unless ( $db->is_installed( '20130702nagvis', "New access for Nagvis", 'all' ) )
+{
+
+    $dbh->do( q[ INSERT INTO access (id,name) VALUES (30,'NAGVIS') ] );
+
+    # Add NAGVIS access to any role that has the VIEWSOME or VIEWALL accesses.
+    $dbh->do(
+        q[
+        INSERT IGNORE INTO roles_access (roleid, accessid)
+            SELECT roleid, 30 FROM roles_access WHERE accessid IN (1,2)
+        ]
+    );
+
+    $dbh->do( q[ UPDATE modules SET access = 'NAGVIS' WHERE id = 1 ] );
+
+    $db->updated;
+
+}
+
 # end of updates
 if ( $postupdate->{regenerate_hostgroups_lft_rgt} ) {
     $db->print( "Regenerating host group information" );

Modified: trunk/opsview-core/t/var/opsview.test.db
===================================================================
--- trunk/opsview-core/t/var/opsview.test.db	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-core/t/var/opsview.test.db	2013-08-15 17:15:05 UTC (rev 13260)
@@ -35,6 +35,7 @@
 INSERT INTO `access` VALUES (12,'CONFIGUREVIEW');
 INSERT INTO `access` VALUES (16,'DOWNTIMEALL');
 INSERT INTO `access` VALUES (17,'DOWNTIMESOME');
+INSERT INTO `access` VALUES (30,'NAGVIS');
 INSERT INTO `access` VALUES (6,'NOTIFYSOME');
 INSERT INTO `access` VALUES (14,'PASSWORDSAVE');
 INSERT INTO `access` VALUES (8,'RELOADACCESS');
@@ -1290,7 +1291,7 @@
 
 LOCK TABLES `modules` WRITE;
 /*!40000 ALTER TABLE `modules` DISABLE KEYS */;
-INSERT INTO `modules` VALUES (1,'Nagvis','/modules/nagvis','Nagios Visualisation','',1,1,'','com.opsview.modules.nagvis',1);
+INSERT INTO `modules` VALUES (1,'Nagvis','/modules/nagvis','Nagios Visualisation','NAGVIS',1,1,'','com.opsview.modules.nagvis',1);
 INSERT INTO `modules` VALUES (2,'MRTG','/status/network_traffic','Multi Router Traffic Grapher','',1,2,'','com.opsview.modules.mrtg',1);
 INSERT INTO `modules` VALUES (3,'NMIS','/cgi-nmis/nmiscgi.pl','Network Management Information System','ADMINACCESS',1,3,'','com.opsview.modules.nmis',1);
 INSERT INTO `modules` VALUES (4,'Reports','http://www.opsview.com/products/enterprise-modules/reports','Opsview Reports Module','REPORTUSER',1,500,'','com.opsview.modules.reports',0);
@@ -1950,12 +1951,14 @@
 INSERT INTO `roles_access` VALUES (10,27);
 INSERT INTO `roles_access` VALUES (10,28);
 INSERT INTO `roles_access` VALUES (10,29);
+INSERT INTO `roles_access` VALUES (10,30);
 INSERT INTO `roles_access` VALUES (11,1);
 INSERT INTO `roles_access` VALUES (11,4);
 INSERT INTO `roles_access` VALUES (11,6);
 INSERT INTO `roles_access` VALUES (11,14);
 INSERT INTO `roles_access` VALUES (11,17);
 INSERT INTO `roles_access` VALUES (11,22);
+INSERT INTO `roles_access` VALUES (11,30);
 INSERT INTO `roles_access` VALUES (12,2);
 INSERT INTO `roles_access` VALUES (12,4);
 INSERT INTO `roles_access` VALUES (12,6);
@@ -1964,14 +1967,18 @@
 INSERT INTO `roles_access` VALUES (12,14);
 INSERT INTO `roles_access` VALUES (12,17);
 INSERT INTO `roles_access` VALUES (12,22);
+INSERT INTO `roles_access` VALUES (12,30);
 INSERT INTO `roles_access` VALUES (13,1);
 INSERT INTO `roles_access` VALUES (13,6);
 INSERT INTO `roles_access` VALUES (13,14);
+INSERT INTO `roles_access` VALUES (13,30);
 INSERT INTO `roles_access` VALUES (14,2);
 INSERT INTO `roles_access` VALUES (14,6);
 INSERT INTO `roles_access` VALUES (14,14);
+INSERT INTO `roles_access` VALUES (14,30);
 INSERT INTO `roles_access` VALUES (15,2);
 INSERT INTO `roles_access` VALUES (15,14);
+INSERT INTO `roles_access` VALUES (15,30);
 INSERT INTO `roles_access` VALUES (16,9);
 INSERT INTO `roles_access` VALUES (16,12);
 INSERT INTO `roles_access` VALUES (16,13);
@@ -1998,13 +2005,39 @@
 INSERT INTO `roles_access` VALUES (18,14);
 INSERT INTO `roles_access` VALUES (18,17);
 INSERT INTO `roles_access` VALUES (18,22);
+INSERT INTO `roles_access` VALUES (18,30);
 INSERT INTO `roles_access` VALUES (19,2);
 INSERT INTO `roles_access` VALUES (19,6);
 INSERT INTO `roles_access` VALUES (19,14);
+INSERT INTO `roles_access` VALUES (19,30);
 INSERT INTO `roles_access` VALUES (20,2);
 INSERT INTO `roles_access` VALUES (20,14);
+INSERT INTO `roles_access` VALUES (20,30);
 INSERT INTO `roles_access` VALUES (21,13);
 INSERT INTO `roles_access` VALUES (21,15);
+INSERT INTO `roles_access` VALUES (21,25);
+INSERT INTO `roles_access` VALUES (22,2);
+INSERT INTO `roles_access` VALUES (22,4);
+INSERT INTO `roles_access` VALUES (22,7);
+INSERT INTO `roles_access` VALUES (22,12);
+INSERT INTO `roles_access` VALUES (22,13);
+INSERT INTO `roles_access` VALUES (22,17);
+INSERT INTO `roles_access` VALUES (22,22);
+INSERT INTO `roles_access` VALUES (22,23);
+INSERT INTO `roles_access` VALUES (22,27);
+INSERT INTO `roles_access` VALUES (22,28);
+INSERT INTO `roles_access` VALUES (22,29);
+INSERT INTO `roles_access` VALUES (22,30);
+INSERT INTO `roles_access` VALUES (23,2);
+INSERT INTO `roles_access` VALUES (23,22);
+INSERT INTO `roles_access` VALUES (23,27);
+INSERT INTO `roles_access` VALUES (23,30);
+INSERT INTO `roles_access` VALUES (24,2);
+INSERT INTO `roles_access` VALUES (24,30);
+INSERT INTO `roles_access` VALUES (25,2);
+INSERT INTO `roles_access` VALUES (25,4);
+INSERT INTO `roles_access` VALUES (25,7);
+INSERT INTO `roles_access` VALUES (25,30);
 /*!40000 ALTER TABLE `roles_access` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2084,6 +2117,7 @@
 INSERT INTO `schema_version` VALUES ('20130814surv','all','Set survey to always send','2013-06-30 16:38:26',0);
 INSERT INTO `schema_version` VALUES ('20130612accesses','all','New accessess','2013-06-11 10:46:29',0);
 INSERT INTO `schema_version` VALUES ('20130621tenacces','all','Rename tenancy access','2013-06-21 00:00:00',0);
+INSERT INTO `schema_version` VALUES ('20130702nagvis','all','New access for Nagvis','2013-07-02 13:15:57',0);
 INSERT INTO `schema_version` VALUES ('3.0','4',NULL,NULL,NULL);
 INSERT INTO `schema_version` VALUES ('3.1','4',NULL,NULL,NULL);
 INSERT INTO `schema_version` VALUES ('3.11','15',NULL,NULL,NULL);

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po	2013-08-15 17:15:05 UTC (rev 13260)
@@ -1859,6 +1859,12 @@
 msgid "ui.admin.role.edit.statusaccess.downtimesome"
 msgstr "Allows setting of scheduled downtimes for some objects — DOWNTIMESOME"
 
+msgid "ui.admin.role.edit.statusaccess.nagvis"
+msgstr "Allows access to Nagvis — NAGVIS"
+
+msgid "ui.admin.role.edit.statusaccess.no_content"
+msgstr "You don't have any status rights."
+
 msgid "ui.admin.role.edit.statusaccess.notifysome"
 msgstr "Allows sending of notifications — NOTIFYSOME"
 

Modified: trunk/opsview-web/root/admin/role/tab-statusaccess
===================================================================
--- trunk/opsview-web/root/admin/role/tab-statusaccess	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-web/root/admin/role/tab-statusaccess	2013-08-15 17:15:05 UTC (rev 13260)
@@ -101,13 +101,37 @@
   value   => access.find({ name => 'RRDGRAPHS' }).id,
 ) IF allowed_accesses.RRDGRAPHS;
 
-'<br />' _
-checkbox(
-  label   => c.loc('ui.admin.role.edit.statusaccess.notifysome'),
-  checked => object.has_access('NOTIFYSOME'),
-  name    => 'accesses',
-  value   => access.find({ name => 'NOTIFYSOME' }).id,
-) IF allowed_accesses.NOTIFYSOME;
+IF allowed_accesses.NOTIFYSOME;
+  content = content _ '<br />' _
+  checkbox(
+    label   => c.loc('ui.admin.role.edit.statusaccess.notifysome'),
+    checked => object.has_access('NOTIFYSOME'),
+    name    => 'accesses',
+    value   => allowed_accesses.NOTIFYSOME,
+  );
+  someething_shown = 1;
+END;
+
+IF allowed_accesses.NAGVIS;
+  content = content _ '<br />' _
+  checkbox(
+    label   => c.loc('ui.admin.role.edit.statusaccess.nagvis'),
+    checked => object.has_access('NAGVIS'),
+    name    => 'accesses',
+    value   => allowed_accesses.NAGVIS,
+  );
+  someething_shown = 1;
+END;
+
+content = content _ '</td></tr></table>';
+
+IF something_shown;
+  content;
+ELSE;
+  '<div class="fields">&nbsp;</div>';
+  c.loc('ui.admin.role.edit.statusaccess.no_content') | html;
+END;
+
 %]
 
       </td>

Modified: trunk/opsview-web/t/710adminroles.t
===================================================================
--- trunk/opsview-web/t/710adminroles.t	2013-08-15 15:35:00 UTC (rev 13259)
+++ trunk/opsview-web/t/710adminroles.t	2013-08-15 17:15:05 UTC (rev 13260)
@@ -18,8 +18,76 @@
 use lib "$Bin/lib";
 use Opsview::TestUtils;
 
+use Opsview::Schema;
+my $schema            = Opsview::Schema->my_connect;
+my $rs                = $schema->resultset( "Access" );
+my $access_id_to_name = {};
+while ( my $r = $rs->next ) {
+    $access_id_to_name->{ $r->id } = $r->name;
+}
+my $access_name_to_id = { reverse %$access_id_to_name };
+
 my $mech = Test::WWW::Mechanize::Catalyst->new;
 
+# This will store a cache of the order of the accesses on the page
+# This is because $mech wants to know the order, whereas
+# the test only cares about the values
+my $order_of_accesses = {};
+
+sub set_access_to_position {
+    my $form     = shift;
+    my $position = 1;
+    foreach my $input ( $form->find_input("accesses") ) {
+        my $v = ( $input->possible_values )[1];
+        $order_of_accesses->{ $access_id_to_name->{$v} } = $position;
+        $position++;
+    }
+}
+
+# These are a bunch of convenience functions as WWW::Mechanize wants to
+# do checks based on position, but ticks based on value
+# We make these functions just take a list of accesses and work
+# out the right values to pass. This makes it much more
+# consistent and makes the test "re-arrange" proof in the web UI
+sub tick_accesses {
+    my $accesses = shift;
+    foreach my $aname ( split( ",", $accesses ) ) {
+        $mech->tick( "accesses", $access_name_to_id->{$aname} );
+    }
+}
+
+sub untick_accesses {
+    my $accesses = shift;
+    foreach my $aname ( split( ",", $accesses ) ) {
+        $mech->untick( "accesses", $access_name_to_id->{$aname} );
+    }
+}
+
+sub is_access_checked {
+    my ( $accesspoint, $checked, $line ) = @_;
+    my $expected = $checked ? $access_name_to_id->{$accesspoint} : undef;
+    my @caller = caller;
+    is(
+        $mech->value( 'accesses', $order_of_accesses->{$accesspoint} ),
+        $expected,
+        "$accesspoint = " . ( $checked ? "on" : "off" ) . " (line $line)"
+    );
+}
+
+sub is_access_set {
+    my $accesses        = shift;
+    my $fulllist        = {%$access_name_to_id};
+    my $access_expected = { map { ( $_ => 1 ) } split( ",", $accesses ) };
+    my @caller          = caller;
+    foreach my $a ( keys %$fulllist ) {
+        next if $access_expected->{$a};
+        $fulllist->{$a} = 0;
+    }
+    foreach my $a ( sort keys %$fulllist ) {
+        is_access_checked( $a, $fulllist->{$a}, $caller[2] );
+    }
+}
+
 log_in( $mech, 'admin', 'initial' );
 
 $mech->get_ok( "/admin/role" );
@@ -41,34 +109,7 @@
 $mech->form_name( "main_form" );
 is( $mech->value("name"),        "View all, change none" );
 is( $mech->value("description"), "Read only user" );
-is( $mech->value( 'accesses', 1 ),  undef, 'ACTIONALL' );
-is( $mech->value( 'accesses', 2 ),  undef, 'ACTIONSOME' );
-is( $mech->value( 'accesses', 3 ),  undef, 'ADMINACCESS' );
-is( $mech->value( 'accesses', 4 ),  undef, 'CONFIGURECONTACTS' );
-is( $mech->value( 'accesses', 5 ),  undef, 'CONFIGUREHOSTGROUPS' );
-is( $mech->value( 'accesses', 6 ),  undef, 'CONFIGUREHOSTS' );
-is( $mech->value( 'accesses', 7 ),  undef, 'CONFIGUREKEYWORDS' );
-is( $mech->value( 'accesses', 8 ),  undef, 'CONFIGURENETFLOW' );
-is( $mech->value( 'accesses', 9 ),  undef, 'CONFIGUREPROFILES' );
-is( $mech->value( 'accesses', 10 ), undef, 'CONFIGUREROLES' );
-is( $mech->value( 'accesses', 11 ), undef, 'CONFIGURESAVE' );
-is( $mech->value( 'accesses', 12 ), undef, 'CONFIGURETENANCY' );
-is( $mech->value( 'accesses', 13 ), undef, 'CONFIGUREVIEW' );
-is( $mech->value( 'accesses', 14 ), undef, 'DOWNTIMEALL' );
-is( $mech->value( 'accesses', 15 ), undef, 'DOWNTIMESOME' );
-is( $mech->value( 'accesses', 16 ), undef, 'NETFLOW' );
-is( $mech->value( 'accesses', 17 ), 6,     'NOTIFYSOME' );
-is( $mech->value( 'accesses', 18 ), 14,    'PASSWORDSAVE' );
-is( $mech->value( 'accesses', 19 ), undef, 'RELOADACCESS' );
-is( $mech->value( 'accesses', 20 ), undef, 'REPORTADMIN' );
-is( $mech->value( 'accesses', 21 ), undef, 'REPORTUSER' );
-is( $mech->value( 'accesses', 22 ), undef, 'RRDGRAPHS' );
-is( $mech->value( 'accesses', 23 ), undef, 'TESTALL' );
-is( $mech->value( 'accesses', 24 ), undef, 'TESTCHANGE' );
-is( $mech->value( 'accesses', 25 ), undef, 'TESTSOME' );
-is( $mech->value( 'accesses', 26 ), 1,     'VIEWALL' );
-is( $mech->value( 'accesses', 27 ), undef, 'VIEWPORTACCESS' );
-is( $mech->value( 'accesses', 28 ), undef, 'VIEWSOME' );
+is_access_set( "PASSWORDSAVE,NOTIFYSOME,VIEWALL,NAGVIS" );
 
 $mech->field( "name",        "badrobot" );
 $mech->field( "description", "New role info" );
@@ -83,42 +124,12 @@
 $mech->content_like(qr/Edit: badrobot/);
 $mech->form_name( "main_form" );
 
-is( $mech->value("name"),        "badrobot" );
-is( $mech->value("description"), "New role info" );
-is( $mech->value( 'accesses', 1 ),  undef, 'ACTIONALL' );
-is( $mech->value( 'accesses', 2 ),  undef, 'ACTIONSOME' );
-is( $mech->value( 'accesses', 3 ),  undef, 'ADMINACCESS' );
-is( $mech->value( 'accesses', 4 ),  undef, 'CONFIGURECONTACTS' );
-is( $mech->value( 'accesses', 5 ),  undef, 'CONFIGUREHOSTGROUPS' );
-is( $mech->value( 'accesses', 6 ),  7,     'CONFIGUREHOSTS' );
-is( $mech->value( 'accesses', 7 ),  undef, 'CONFIGUREKEYWORDS' );
-is( $mech->value( 'accesses', 8 ),  undef, 'CONFIGURENETFLOW' );
-is( $mech->value( 'accesses', 9 ),  undef, 'CONFIGUREPROFILES' );
-is( $mech->value( 'accesses', 10 ), undef, 'CONFIGUREROLES' );
-is( $mech->value( 'accesses', 11 ), undef, 'CONFIGURESAVE' );
-is( $mech->value( 'accesses', 12 ), undef, 'CONFIGURETENANCY' );
-is( $mech->value( 'accesses', 13 ), undef, 'CONFIGUREVIEW' );
-is( $mech->value( 'accesses', 14 ), undef, 'DOWNTIMEALL' );
-is( $mech->value( 'accesses', 15 ), undef, 'DOWNTIMESOME' );
-is( $mech->value( 'accesses', 16 ), undef, 'NETFLOW' );
-is( $mech->value( 'accesses', 17 ), undef, 'NOTIFYSOME' );
-is( $mech->value( 'accesses', 18 ), 14,    'PASSWORDSAVE' );
-is( $mech->value( 'accesses', 19 ), undef, 'RELOADACCESS' );
-is( $mech->value( 'accesses', 20 ), undef, 'REPORTADMIN' );
-is( $mech->value( 'accesses', 21 ), undef, 'REPORTUSER' );
-is( $mech->value( 'accesses', 22 ), undef, 'RRDGRAPHS' );
-is( $mech->value( 'accesses', 23 ), undef, 'TESTALL' );
-is( $mech->value( 'accesses', 24 ), undef, 'TESTCHANGE' );
-is( $mech->value( 'accesses', 25 ), undef, 'TESTSOME' );
-is( $mech->value( 'accesses', 26 ), 1,     'VIEWALL' );
-is( $mech->value( 'accesses', 27 ), 10,    'VIEWPORTACCESS' );
-is( $mech->value( 'accesses', 28 ), undef, 'VIEWSOME' );
+is( $mech->value("name"),        "badrobot",      "Got new name" );
+is( $mech->value("description"), "New role info", "Got new description" );
+is_access_set( "VIEWALL,VIEWPORTACCESS,CONFIGUREHOSTS,PASSWORDSAVE,NAGVIS" );
 
 # Proves that all accesses can be disabled
-$mech->untick( "accesses", 7 );
-$mech->untick( "accesses", 10 );
-$mech->untick( "accesses", 1 );
-$mech->untick( "accesses", 14 );
+untick_accesses( "VIEWALL,VIEWPORTACCESS,CONFIGUREHOSTS,PASSWORDSAVE,NAGVIS" );
 $mech->submit_form;
 
 $mech->get_ok( "/admin/role/edit/13" );
@@ -216,34 +227,9 @@
 $mech->form_name( "main_form" );
 is( $mech->value("name"),        "clonedrole" );
 is( $mech->value("description"), "Restricted operator" );
-is( $mech->value( 'accesses', 1 ),  undef, 'ACTIONALL' );
-is( $mech->value( 'accesses', 2 ),  4,     'ACTIONSOME' );
-is( $mech->value( 'accesses', 3 ),  undef, 'ADMINACCESS' );
-is( $mech->value( 'accesses', 4 ),  undef, 'CONFIGURECONTACTS' );
-is( $mech->value( 'accesses', 5 ),  undef, 'CONFIGUREHOSTGROUPS' );
-is( $mech->value( 'accesses', 6 ),  7,     'CONFIGUREHOSTS' );
-is( $mech->value( 'accesses', 7 ),  undef, 'CONFIGUREKEYWORDS' );
-is( $mech->value( 'accesses', 8 ),  undef, 'CONFIGURENETFLOW' );
-is( $mech->value( 'accesses', 9 ),  undef, 'CONFIGUREPROFILES' );
-is( $mech->value( 'accesses', 10 ), undef, 'CONFIGUREROLES' );
-is( $mech->value( 'accesses', 11 ), 13,    'CONFIGURESAVE' );
-is( $mech->value( 'accesses', 12 ), undef, 'CONFIGURETENANCY' );
-is( $mech->value( 'accesses', 13 ), undef, 'CONFIGUREVIEW' );
-is( $mech->value( 'accesses', 14 ), undef, 'DOWNTIMEALL' );
-is( $mech->value( 'accesses', 15 ), 17,    'DOWNTIMESOME' );
-is( $mech->value( 'accesses', 16 ), undef, 'NETFLOW' );
-is( $mech->value( 'accesses', 17 ), 6,     'NOTIFYSOME' );
-is( $mech->value( 'accesses', 18 ), 14,    'PASSWORDSAVE' );
-is( $mech->value( 'accesses', 19 ), undef, 'RELOADACCESS' );
-is( $mech->value( 'accesses', 20 ), undef, 'REPORTADMIN' );
-is( $mech->value( 'accesses', 21 ), undef, 'REPORTUSER' );
-is( $mech->value( 'accesses', 22 ), undef, 'RRDGRAPHS' );
-is( $mech->value( 'accesses', 23 ), undef, 'TESTALL' );
-is( $mech->value( 'accesses', 24 ), undef, 'TESTCHANGE' );
-is( $mech->value( 'accesses', 25 ), 22,    'TESTSOME' );
-is( $mech->value( 'accesses', 26 ), undef, 'VIEWALL' );
-is( $mech->value( 'accesses', 27 ), undef, 'VIEWPORTACCESS' );
-is( $mech->value( 'accesses', 28 ), 2,     'VIEWSOME' );
+is_access_set(
+    "VIEWSOME,ACTIONSOME,DOWNTIMESOME,TESTSOME,NOTIFYSOME,CONFIGUREHOSTS,CONFIGURESAVE,PASSWORDSAVE,NAGVIS"
+);
 
 is( $mech->value( "hostgroups", 1 ),  undef );
 is( $mech->value( "hostgroups", 2 ),  undef );

_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins

Reply via email to