mirror of
				https://github.com/redmine/redmine.git
				synced 2025-10-31 10:25:55 +01:00 
			
		
		
		
	
		
			
	
	
		
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|  | # redMine - project management software | ||
|  | # Copyright (C) 2006-2008  Jean-Philippe Lang | ||
|  | # | ||
|  | # This program is free software; you can redistribute it and/or | ||
|  | # modify it under the terms of the GNU General Public License | ||
|  | # as published by the Free Software Foundation; either version 2 | ||
|  | # of the License, or (at your option) any later version. | ||
|  | #  | ||
|  | # This program is distributed in the hope that it will be useful, | ||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  | # GNU General Public License for more details. | ||
|  | #  | ||
|  | # You should have received a copy of the GNU General Public License | ||
|  | # along with this program; if not, write to the Free Software | ||
|  | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||
|  | 
 | ||
|  | class MailHandlerController < ActionController::Base | ||
|  |   before_filter :check_credential | ||
|  |    | ||
|  |   verify :method => :post, | ||
|  |          :only => :index, | ||
|  |          :render => { :nothing => true, :status => 405 } | ||
|  |           | ||
|  |   # Submits an incoming email to MailHandler | ||
|  |   def index | ||
|  |     options = params.dup | ||
|  |     email = options.delete(:email) | ||
|  |     if MailHandler.receive(email, options) | ||
|  |       render :nothing => true, :status => :created | ||
|  |     else | ||
|  |       render :nothing => true, :status => :unprocessable_entity | ||
|  |     end | ||
|  |   end | ||
|  |    | ||
|  |   private | ||
|  |    | ||
|  |   def check_credential | ||
|  |     User.current = nil | ||
|  |     unless Setting.mail_handler_api_enabled? && params[:key] == Setting.mail_handler_api_key | ||
|  |       render :nothing => true, :status => 403
 | ||
|  |     end | ||
|  |   end | ||
|  | end |