[ https://issues.apache.org/jira/browse/TC-550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16138965#comment-16138965 ]
Jeremy Mitchell edited comment on TC-550 at 8/23/17 7:51 PM: ------------------------------------------------------------- On this line: https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_ops/app/lib/API/Deliveryservice.pm#L982 maybe it should be something like: if (!$tenant_utils->is_ds_resource_accessible($tenants_data, $row->tenant_id) || !$tenant_utils->is_ds_resource_accessible($tenants_data, $row->tenant_id, user.tenant_id) ) { next; } I passed in a 3rd optional argument to is_ds_resource_accessible() and specified the tenant i wanted to have the $row.tenant_id checked against.... so in this case, i want tenancy to be checked against the current_user.tenant AND the user.tenant.. was (Author: mitchell...@apache.org): On this line: https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_ops/app/lib/API/Deliveryservice.pm#L982 maybe it should be something like: if (!$tenant_utils->is_ds_resource_accessible($tenants_data, $row->tenant_id) && !$tenant_utils->is_ds_resource_accessible($tenants_data, $row->tenant_id, user.tenant_id) ) { next; } I passed in a 3rd optional argument to is_ds_resource_accessible() and specified the tenant i wanted to have the $row.tenant_id checked against.... so in this case, i want tenancy to be checked against the current_user.tenant AND the user.tenant.. > TO API - fetch deliveryservices for a user should have tenancy hooked in > ------------------------------------------------------------------------ > > Key: TC-550 > URL: https://issues.apache.org/jira/browse/TC-550 > Project: Traffic Control > Issue Type: Bug > Components: Traffic Ops API > Affects Versions: 2.1.0 > Reporter: Jeremy Mitchell > > The following api route does not take into consideration the tenancy of the > specified user: > get( "/api/$version/users/:id/deliveryservices > it currently does the following: > 1. it checks the tenancy of the specified user vs. the tenancy of the current > user to ensure the current user can see the specified user <-- this is good > 2. it queries the deliveryservice_tmuser table to find the delivery services > associated to the tm_user and then if finally filters the results based on > the current user's tenancy <-- it should not query this table if use_tenancy > = 1 > if use_tenancy = 0, it should work the way it does now > if use_tenancy = 1, it should not query the deliveryservice_tmuser table but > instead query the deliveryservice table and filter the results against the > specified user's tenant AND the current user's tenant. -- This message was sent by Atlassian JIRA (v6.4.14#64029)