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);
 				}
 			},