Title: [opsview] [13288] Merge of 12795 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,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,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/Contacts.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet/Contacts.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/lib/Opsview/ResultSet/Contacts.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -76,8 +76,8 @@
     return @list;
 }
 
-sub restrict_by_role {
-    my ( $self, $role ) = @_;
+sub restrict_by_user {
+    my ( $self, $user ) = @_;
     return $self;
 }
 

Modified: trunk/opsview-core/lib/Opsview/ResultSet/Hostgroups.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet/Hostgroups.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/lib/Opsview/ResultSet/Hostgroups.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -61,21 +61,21 @@
     );
 }
 
-sub restricted_leaves_by_role {
-    my ( $self, $role ) = @_;
-    return $self->restrict_by_role($role)
+sub restricted_leaves_by_user {
+    my ( $self, $user ) = @_;
+    return $self->restrict_by_user($user)
       ->search( { rgt => \"= lft+1", }, { order_by => "name" } );
 }
 
-sub restrict_by_role {
-    my ( $self, $role ) = @_;
-    my @matpaths = map { $_->matpath . "%" } $role->hostgroups;
+sub restrict_by_user {
+    my ( $self, $user ) = @_;
+    my @matpaths = map { $_->matpath . "%" } $user->role->hostgroups;
     return $self->search( { matpath => { "-like" => \@matpaths } } );
 }
 
 sub restricted_leaves_arrayref {
     my ($self) = @_;
-    my @a = $self->restricted_leaves_by_role( $self->user->role );
+    my @a = $self->restricted_leaves_by_user( $self->user );
     \@a;
 }
 

Modified: trunk/opsview-core/lib/Opsview/ResultSet/Hosts.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet/Hosts.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/lib/Opsview/ResultSet/Hosts.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -373,9 +373,9 @@
     $parents_lookup;
 }
 
-sub restrict_by_role {
-    my ( $self, $role ) = @_;
-    my $hg_paths = [ map { $_->matpath . '%' } $role->hostgroups ];
+sub restrict_by_user {
+    my ( $self, $user ) = @_;
+    my $hg_paths = [ map { $_->matpath . '%' } $user->role->hostgroups ];
     return $self->search(
         { 'hostgroup.matpath' => { '-like' => $hg_paths }, },
         { join                => "hostgroup", }

Modified: trunk/opsview-core/lib/Opsview/ResultSet/Roles.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet/Roles.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/lib/Opsview/ResultSet/Roles.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -91,8 +91,8 @@
 
 sub my_type_is {"role"}
 
-sub restrict_by_role {
-    my ( $self, $role ) = @_;
+sub restrict_by_user {
+    my ( $self, $user ) = @_;
     return $self;
 }
 

Modified: trunk/opsview-core/lib/Opsview/ResultSet.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/ResultSet.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/lib/Opsview/ResultSet.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -513,4 +513,12 @@
 # This is required so that unique checks can find out if columns are in the result to search
 sub has_column { shift->result_class->has_column(@_) }
 
+# This should be overridden by the subclass to apply
+# restrictions based on the user object. This just stubs this
+# behaviour
+sub restrict_by_user {
+    my ( $self, $user ) = @_;
+    $self;
+}
+
 1;

Modified: trunk/opsview-core/t/940contacts.t
===================================================================
--- trunk/opsview-core/t/940contacts.t	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-core/t/940contacts.t	2013-08-15 18:59:29 UTC (rev 13288)
@@ -24,7 +24,7 @@
 my $admin = $rs->find( { name => "admin" } );
 
 is( $rs->count, 14, "Got all contacts expected" );
-is( $rs->restrict_by_role( $admin->role )->count, 14, "Same with an admin/non-tenant user" );
+is( $rs->restrict_by_user( $admin )->count, 14, "Same with an admin/non-tenant user" );
 
 # Test strange bug
 $rs->synchronise(

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Contact.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Contact.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Contact.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -56,7 +56,7 @@
     my ( $self, $c, @args ) = @_;
     $c->stash( title_description => $c->loc("ui.objecttype.contact") );
     $c->stash->{list_rs} =
-      $c->model( $self->model_name )->restrict_by_role( $c->user->role );
+      $c->model( $self->model_name )->restrict_by_user( $c->user );
 
     $self->next::method( $c, @args );
 

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Host.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Host.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Host.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -104,7 +104,7 @@
 
     $c->stash( tabs => $tabs );
 
-    my $rs = $c->model( $self->model_name )->restrict_by_role( $c->user->role );
+    my $rs = $c->model( $self->model_name )->restrict_by_user( $c->user );
     $c->stash( list_rs => $rs );
 
     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 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Hostgroup.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -59,7 +59,7 @@
 after 'list' => sub {
     my ( undef, $c ) = @_;
     $c->stash->{data_iterator} =
-      $c->stash->{data_iterator}->restricted_leaves_by_role( $c->user->role );
+      $c->stash->{data_iterator}->restricted_leaves_by_user( $c->user );
 };
 
 sub change_hosts : Local : Args(0) {
@@ -105,7 +105,7 @@
     my %allowed_to_see_hostgroups;
     my %allowed_to_dragdrop;
 
-    my $rs = $c->model( $self->model_name )->restrict_by_role( $c->user->role );
+    my $rs = $c->model( $self->model_name )->restrict_by_user( $c->user );
     while ( my $hg = $rs->next ) {
         $allowed_to_dragdrop{ $hg->id } = 1;
         map { $allowed_to_see_hostgroups{$_} = 1 } split( ',', $hg->matpathid );

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Contact.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Contact.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Contact.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -31,7 +31,7 @@
   PathPart("contact") : Does(ACL) : RequiresRole(CONFIGURECONTACTS) :
   ACLDetachTo(/access_denied) {
     my ( $self, $c ) = @_;
-    my $rs = $c->stash->{resultset}->restrict_by_role( $c->user->role );
+    my $rs = $c->stash->{resultset}->restrict_by_user( $c->user );
     $c->stash->{resultset} = $rs;
 }
 

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Host.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Host.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Host.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -36,7 +36,7 @@
     my $rs = $c->stash->{resultset};
 
     # Catalyst magic! Restrict all subsequent calls to only the objects this user is allowed to see based on role
-    $rs = $rs->restrict_by_role( $c->user->role );
+    $rs = $rs->restrict_by_user( $c->user );
     $rs = $rs->search(
         {},
         {

Modified: trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Role.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Role.pm	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/REST/Config/Role.pm	2013-08-15 18:59:29 UTC (rev 13288)
@@ -38,7 +38,7 @@
     my ( $self, $c ) = @_;
 
     # Catalyst/DBIx::Class magic! Restrict all subsequent calls to only the objects this user is allowed to see based on role
-    my $rs = $c->stash->{resultset}->restrict_by_role( $c->user->role );
+    my $rs = $c->stash->{resultset}->restrict_by_user( $c->user );
     $c->stash->{resultset} = $rs;
 
 }

Modified: trunk/opsview-web/root/admin/contact/tab-contact
===================================================================
--- trunk/opsview-web/root/admin/contact/tab-contact	2013-08-15 18:56:21 UTC (rev 13287)
+++ trunk/opsview-web/root/admin/contact/tab-contact	2013-08-15 18:59:29 UTC (rev 13288)
@@ -54,7 +54,7 @@
   popup_menu(
     form_label => c.loc("ui.admin.contact.edit.label.role"),
     name => "role",
-    resultset_iterator => c.model("OpsviewSchema::Roles").scalar.restrict_by_role(c.user.role).scalar.search_ordered_roles.scalar.search_non_system_roles,
+    resultset_iterator => c.model("OpsviewSchema::Roles").scalar.restrict_by_user(c.user).scalar.search_ordered_roles.scalar.search_non_system_roles,
     help_keyword => "role",
   );
 ELSE;

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

Reply via email to