Title: [opsview] [13309] Merge of 12900 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,10622,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,12678-
 12679,12681-12682,12685,12687,12691-12693,12697,12703,12721,12724-12725,12731-12732,12737-12739,12741,12743-12744,12746,12750,12754-12756,12759,12764-12765,12770,12772-12776,12784,12787-12788,12795,12797,12799-12800,12806,12810,12814,12816-12817,12822-12823,12827,12833,12838,12841,12843-12846,12848,12851-12853,12856,12858,12860-12861,12863,12867,12876,12879-12880,12883-12884,12894,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,10622,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,12678-
 12679,12681-12682,12685,12687,12691-12693,12697,12703,12721,12724-12725,12731-12732,12737-12739,12741,12743-12744,12746,12750,12754-12756,12759,12764-12765,12770,12772-12776,12784,12787-12788,12795,12797,12799-12800,12806,12810,12814,12816-12817,12822-12823,12827,12833,12838,12841,12843-12846,12848,12851-12853,12856,12858,12860-12861,12863,12867,12876,12879-12880,12883-12884,12894,12900,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/lib/Opsview/ResultSet/Hostgroups.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet/Hostgroups.pm	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-core/lib/Opsview/ResultSet/Hostgroups.pm	2013-08-15 20:31:48 UTC (rev 13309)
@@ -191,8 +191,13 @@
         $get_highest_hostgroup_parent_res =
           $info->{user}->get_highest_hostgroup_parent;
 
-        $original_attrs->{parent} =
-          $get_highest_hostgroup_parent_res->{hostgroup}->id;
+        unless ($get_highest_hostgroup_parent_res) {
+            $info->{errors} = ["Cannot find suitable parent host group"];
+        }
+        else {
+            $original_attrs->{parent} =
+              $get_highest_hostgroup_parent_res->{hostgroup}->id;
+        }
     }
 
     my $obj = $self->next::method( $original_attrs, $info );
@@ -200,15 +205,11 @@
     if ($get_highest_hostgroup_parent_res) {
         my $role = $info->{user}->role;
 
-        # Tick in roles -> status objects page
+        # Tick for this role
         unless ( $role->all_hostgroups ) {
             $role->add_to_access_hostgroups($obj);
         }
 
-        # Add to access control to see host group, but only if this was a non-leaf
-        if ( $get_highest_hostgroup_parent_res->{used_parent} ) {
-            $role->add_to_hostgroups($obj);
-        }
     }
     $info->{seen_ids}->{ $obj->id }++ if exists $info->{seen_ids};
     $obj;

Modified: trunk/opsview-core/lib/Opsview/ResultSet.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet.pm	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-core/lib/Opsview/ResultSet.pm	2013-08-15 20:31:48 UTC (rev 13309)
@@ -226,7 +226,7 @@
       Opsview::Utils->remove_keys_from_hash( $attrs, ["ref"],
         "do_not_die_on_non_hash" );
 
-    my @errors;
+    my @errors = @{ $info->{errors} || [] };
     my $username = $info->{username} || "";
 
     my $type = $self->class_title;

Modified: trunk/opsview-core/lib/Opsview/Schema/Contacts.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/Schema/Contacts.pm	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-core/lib/Opsview/Schema/Contacts.pm	2013-08-15 20:31:48 UTC (rev 13309)
@@ -397,8 +397,8 @@
 # This works out what the best host group parent is to be used when adding a new host group
 # The rules are:
 #   - use the highest non-leaf host group the user has access to, or
-#   - find a leaf without any hosts, or
-#   - for the first leaf, pick the same parent
+#   - find a leaf without any hosts
+# It will be a failure if there are no host groups to choose
 sub get_highest_hostgroup_parent {
     my ($self) = @_;
     my $res    = {};
@@ -417,11 +417,7 @@
             used_parent => 0
         };
     }
-    $hg = $role->hostgroups->leaves->first;
-    return {
-        hostgroup   => $hg->parent,
-        used_parent => 1
-    };
+    return undef;
 }
 
 __PACKAGE__->validation_auto(1);

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Hostgroup.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Hostgroup.pm	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Hostgroup.pm	2013-08-15 20:31:48 UTC (rev 13309)
@@ -63,6 +63,14 @@
       $c->stash->{data_iterator}->restricted_leaves_by_user( $c->user );
 };
 
+after 'create_new' => sub {
+    my ( $self, $c ) = @_;
+    unless ( $c->user->get_highest_hostgroup_parent ) {
+        $c->stash( show_error_cannot_create_hostgroup => 1 );
+        $c->stash( user_has_save_access               => 0 );
+    }
+};
+
 sub change_hosts : Local : Args(0) {
     my ( $self, $c ) = @_;
     my ( $hg, $host );

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/de.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/de.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/de.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1079,6 +1079,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Zusammenfassung"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Name"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/es.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/es.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/es.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1092,6 +1092,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Sumario"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Nombre"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/fr.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/fr.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/fr.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1077,6 +1077,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Vue résumé"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Nom"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -10,10 +10,10 @@
 "PO-Revision-Date: 2009-06-09 14:10+0000\n"
 "Last-Translator: Ton Voon <ton.v...@opsview.com>\n"
 "Language-Team: English <e...@li.org>\n"
-"Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
 
 msgid "messages.access.noAuthToChangeService"
 msgstr "You are not authorised to change the state of this service"
@@ -1157,6 +1157,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Summary"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr "You are currently unable to add a host group into the hiearchy - contact system administrator"
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Name"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/it.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/it.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/it.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1077,6 +1077,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Riepilogo"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Nome"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/pl.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/pl.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/pl.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1075,6 +1075,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Podsumowanie"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Nazwa"
 

Modified: trunk/opsview-web/lib/Opsview/Web/I18N/sv.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/sv.po	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/sv.po	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1076,6 +1076,9 @@
 msgid "ui.admin.hostcheckcommand.table.title.summary"
 msgstr "Sammanfattning"
 
+msgid "ui.admin.hostgroup.edit.cannotAddHostGroup"
+msgstr ""
+
 msgid "ui.admin.hostgroup.edit.label.name"
 msgstr "Namn"
 

Modified: trunk/opsview-web/root/admin/hostgroup/edit_form_fields
===================================================================
--- trunk/opsview-web/root/admin/hostgroup/edit_form_fields	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/root/admin/hostgroup/edit_form_fields	2013-08-15 20:31:48 UTC (rev 13309)
@@ -1,5 +1,9 @@
 [%
 
+IF show_error_cannot_create_hostgroup;
+  '<div id="error_message">'; c.loc('ui.admin.hostgroup.edit.cannotAddHostGroup') | html; '</div>';
+END;
+
 textfield(
   form_label => c.loc("ui.admin.hostgroup.edit.label.name"),
   name => "name",

Modified: trunk/opsview-web/t/815hostgroup.t
===================================================================
--- trunk/opsview-web/t/815hostgroup.t	2013-08-15 20:25:54 UTC (rev 13308)
+++ trunk/opsview-web/t/815hostgroup.t	2013-08-15 20:31:48 UTC (rev 13309)
@@ -44,8 +44,9 @@
 $adminnoc->untick( "all_hostgroups", 1 );
 map { $_->disabled(0) }
   ( $adminnoc->find_all_inputs( name => "access_hostgroups" ) );
-$adminnoc->tick( "access_hostgroups", 4 );
+$adminnoc->tick( "access_hostgroups", 4 ); # Leaf
 $adminnoc->tick( "access_keywords",   9 );
+$adminnoc->select( "hostgroups", 3 );      # UK
 $adminnoc->submit;
 is( $adminnoc->status, 200, "Changed role to include Leaf host groups" );
 

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

Reply via email to