You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by de...@apache.org on 2017/04/11 16:25:17 UTC
[2/2] incubator-trafficcontrol git commit: fixes null pointer when
user logged in as ldap plus copy/paste errors plus moved up invalid check
fixes null pointer when user logged in as ldap plus copy/paste errors plus moved up invalid check
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/396ac5db
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/396ac5db
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/396ac5db
Branch: refs/heads/master
Commit: 396ac5db4b80ec8046e8f750701bc7a5164228b1
Parents: 528c4ea
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Wed Mar 22 20:07:53 2017 -0600
Committer: Dewayne Richardson <de...@apache.org>
Committed: Tue Apr 11 10:25:08 2017 -0600
----------------------------------------------------------------------
traffic_ops/app/lib/API/Job.pm | 53 ++++++++++++++++---------------------
1 file changed, 23 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/396ac5db/traffic_ops/app/lib/API/Job.pm
----------------------------------------------------------------------
diff --git a/traffic_ops/app/lib/API/Job.pm b/traffic_ops/app/lib/API/Job.pm
index cf2608e..49891e5 100644
--- a/traffic_ops/app/lib/API/Job.pm
+++ b/traffic_ops/app/lib/API/Job.pm
@@ -79,50 +79,42 @@ sub create {
my $self = shift;
my $ds_id = $self->req->json->{dsId};
- my $agent = $self->req->json->{agent};
- my $keyword = $self->req->json->{keyword};
my $regex = $self->req->json->{regex};
my $ttl = $self->req->json->{ttl};
my $start_time = $self->req->json->{startTime};
- my $asset_type = $self->req->json->{assetType};
- if ( !&is_admin($self) && !&is_oper($self) ) {
+ my ( $is_valid, $result ) = $self->is_valid( { dsId => $ds_id, regex => $regex, startTime => $start_time, ttl => $ttl } );
+ if ( !$is_valid ) {
+ return $self->alert($result);
+ }
- # not admin or operations -- only an assigned user can purge
- my $tm_user = $self->db->resultset('TmUser')->search( { username => $self->current_user()->{username} } )->single();
- my $tm_user_id = $tm_user->id;
+ if ( !&is_oper($self) ) {
- if ( defined($ds_id) ) {
+ # if not ops or higher -- invalidate content (purge) requests can only be performed against assigned delivery services
+ my $tm_user = $self->db->resultset('TmUser')->search( { username => $self->current_user()->{username} } )->single();
+ my $tm_user_id = (defined($tm_user)) ? $tm_user->id : undef;
- # select deliveryservice from deliveryservice_tmuser where deliveryservice=$ds_id
- my $dbh = $self->db->resultset('DeliveryserviceTmuser')->search( { deliveryservice => $ds_id, tm_user_id => $tm_user_id }, { id => 1 } );
- my $count = $dbh->count();
+ # select deliveryservice from deliveryservice_tmuser where deliveryservice=$ds_id
+ my $dbh = $self->db->resultset('DeliveryserviceTmuser')->search( { deliveryservice => $ds_id, tm_user_id => $tm_user_id }, { id => 1 } );
+ my $count = $dbh->count();
- if ( $count == 0 ) {
- $self->forbidden("Forbidden. Delivery service not assigned to user.");
- return;
- }
+ if ( $count == 0 ) {
+ return $self->forbidden("Forbidden. Delivery service not assigned to user.");
}
}
# Just pass "true" in the urgent key to make it urgent.
my $urgent = $self->req->json->{urgent};
- my ( $is_valid, $result ) = $self->is_valid( { dsId => $ds_id, regex => $regex, startTime => $start_time, ttl => $ttl } );
- if ($is_valid) {
- my $new_id = $self->create_new_job( $ds_id, $regex, $start_time, $ttl, 'PURGE', $urgent );
- if ($new_id) {
- my $saved_job = $self->db->resultset("Job")->find( { id => $new_id } );
- my $asset_url = $saved_job->asset_url;
- &log( $self, "Invalidate content request submitted for " . $asset_url, "APICHANGE" );
- return $self->success_message( "Invalidate content request submitted for: " . $asset_url . " (" . $saved_job->parameters . ")" );
- }
- else {
- return $self->alert( { "Error creating invalidate content request" . $ds_id } );
- }
+ my $new_id = $self->create_new_job( $ds_id, $regex, $start_time, $ttl, 'PURGE', $urgent );
+ if ($new_id) {
+ my $saved_job = $self->db->resultset("Job")->find( { id => $new_id } );
+ my $asset_url = $saved_job->asset_url;
+ &log( $self, "Invalidate content request submitted for " . $asset_url, "APICHANGE" );
+ return $self->success_message( "Invalidate content request submitted for: " . $asset_url . " (" . $saved_job->parameters . ")" );
}
else {
- return $self->alert($result);
+ return $self->alert( { "Error creating invalidate content request" . $ds_id } );
}
}
@@ -150,14 +142,15 @@ sub is_valid {
startTime => sub {
my $value = shift;
my $params = shift;
- if ( defined( $params->{'ttl'} ) ) {
+ if ( defined( $params->{'startTime'} ) ) {
return $self->is_valid_date_format($value);
}
},
+
startTime => sub {
my $value = shift;
my $params = shift;
- if ( defined( $params->{'ttl'} ) ) {
+ if ( defined( $params->{'startTime'} ) ) {
return $self->is_more_than_two_days($value);
}
},