mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 11:48:26 -06:00
Do not return mail password in EmailController
This commit is contained in:
parent
acb2126220
commit
a362d62b42
@ -3,18 +3,10 @@ require_dependency 'email/renderer'
|
|||||||
class Admin::EmailController < Admin::AdminController
|
class Admin::EmailController < Admin::AdminController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
render_json_dump({
|
||||||
# For now, just show the ActionMailer settings
|
delivery_method: delivery_method,
|
||||||
mail_settings = { delivery_method: ActionMailer::Base.delivery_method }
|
settings: delivery_settings
|
||||||
|
})
|
||||||
mail_settings[:settings] = case mail_settings[:delivery_method]
|
|
||||||
when :smtp
|
|
||||||
ActionMailer::Base.smtp_settings.map {|k, v| {name: k, value: v}}
|
|
||||||
when :sendmail
|
|
||||||
ActionMailer::Base.sendmail_settings.map {|k, v| {name: k, value: v}}
|
|
||||||
end
|
|
||||||
|
|
||||||
render_json_dump(mail_settings)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test
|
def test
|
||||||
@ -34,4 +26,19 @@ class Admin::EmailController < Admin::AdminController
|
|||||||
render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text)
|
render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def delivery_settings
|
||||||
|
action_mailer_settings
|
||||||
|
.reject { |k, v| k == :password }
|
||||||
|
.map { |k, v| { name: k, value: v }}
|
||||||
|
end
|
||||||
|
|
||||||
|
def delivery_method
|
||||||
|
ActionMailer::Base.delivery_method
|
||||||
|
end
|
||||||
|
|
||||||
|
def action_mailer_settings
|
||||||
|
ActionMailer::Base.public_send "#{delivery_method}_settings"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -10,11 +10,21 @@ describe Admin::EmailController do
|
|||||||
|
|
||||||
context '.index' do
|
context '.index' do
|
||||||
before do
|
before do
|
||||||
|
subject.expects(:action_mailer_settings).returns({
|
||||||
|
username: 'username',
|
||||||
|
password: 'secret'
|
||||||
|
})
|
||||||
|
|
||||||
xhr :get, :index
|
xhr :get, :index
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { response }
|
it 'does not include the password in the response' do
|
||||||
it { should be_success }
|
mail_settings = JSON.parse(response.body)['settings']
|
||||||
|
|
||||||
|
expect(
|
||||||
|
mail_settings.select { |setting| setting['name'] == 'password' }
|
||||||
|
).to be_empty
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context '.logs' do
|
context '.logs' do
|
||||||
|
Loading…
Reference in New Issue
Block a user