Browse Source
			
			
			Include IP in invalid admin token error
			
			
				pull/343/head
			
			
		 
		
			
				
					
						 Daniel García
					
					7 years ago
						Daniel García
					
					7 years ago
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: FC8A7D14C3CD543A
						
					
				
			
		
		
		
	
		
			
				 2 changed files with 
13 additions and 
2 deletions
			 
			
		 
		
			
				- 
					
					
					 
					src/api/admin.rs
				
- 
					
					
					 
					src/error.rs
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -91,8 +91,15 @@ impl<'a, 'r> FromRequest<'a, 'r> for AdminToken { | 
			
		
	
		
			
				
					|  |  |  |         // Option 2a: Send it to admin email, like upstream
 | 
			
		
	
		
			
				
					|  |  |  |         // Option 2b: Print in console or save to data dir, so admin can check
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         use crate::auth::ClientIp; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         let ip = match request.guard::<ClientIp>() { | 
			
		
	
		
			
				
					|  |  |  |             Outcome::Success(ip) => ip, | 
			
		
	
		
			
				
					|  |  |  |             _ => err_handler!("Error getting Client IP"), | 
			
		
	
		
			
				
					|  |  |  |         }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         if access_token != config_token { | 
			
		
	
		
			
				
					|  |  |  |             err_handler!("Invalid admin token") | 
			
		
	
		
			
				
					|  |  |  |             err_handler!("Invalid admin token", format!("IP: {}.", ip.ip)) | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         Outcome::Success(AdminToken {}) | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -163,7 +163,11 @@ macro_rules! err_json { | 
			
		
	
		
			
				
					|  |  |  | #[macro_export] | 
			
		
	
		
			
				
					|  |  |  | macro_rules! err_handler { | 
			
		
	
		
			
				
					|  |  |  |     ($expr:expr) => {{ | 
			
		
	
		
			
				
					|  |  |  |         error!("Unauthorized Error: {:#?}", $expr); | 
			
		
	
		
			
				
					|  |  |  |         error!("Unauthorized Error: {}", $expr); | 
			
		
	
		
			
				
					|  |  |  |         return rocket::Outcome::Failure((rocket::http::Status::Unauthorized, $expr)); | 
			
		
	
		
			
				
					|  |  |  |     }}; | 
			
		
	
		
			
				
					|  |  |  |     ($usr_msg:expr, $log_value:expr) => {{ | 
			
		
	
		
			
				
					|  |  |  |         error!("Unauthorized Error: {}. {}", $usr_msg, $log_value); | 
			
		
	
		
			
				
					|  |  |  |         return rocket::Outcome::Failure((rocket::http::Status::Unauthorized, $usr_msg)); | 
			
		
	
		
			
				
					|  |  |  |     }}; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 |