Commit e6637259 authored by Kamil Trzcinski's avatar Kamil Trzcinski Committed by Z.J. van de Weg

Store mattermost_url in settings

parent 48ebfaa4
......@@ -153,6 +153,12 @@ production: &base
# The location where LFS objects are stored (default: shared/lfs-objects).
# storage_path: shared/lfs-objects
## Mattermost
## For enabling Add to Mattermost button
mattermost:
enabled: false
host: 'https://mattermost.example.com'
## Gravatar
## For Libravatar see: http://doc.gitlab.com/ce/customization/libravatar.html
gravatar:
......
......@@ -261,6 +261,13 @@ Settings['lfs'] ||= Settingslogic.new({})
Settings.lfs['enabled'] = true if Settings.lfs['enabled'].nil?
Settings.lfs['storage_path'] = File.expand_path(Settings.lfs['storage_path'] || File.join(Settings.shared['path'], "lfs-objects"), Rails.root)
#
# Mattermost
#
Settings['mattermost'] ||= Settingslogic.new({})
Settings.mattermost['enabled'] = false if Settings.mattermost['enabled'].nil?
Settings.mattermost['host'] = nil unless Settings.mattermost.enabled
#
# Gravatar
#
......
......@@ -17,12 +17,11 @@ module Mattermost
include Doorkeeper::Helpers::Controller
include HTTParty
attr_accessor :current_resource_owner, :token
base_uri Settings.mattermost.host
def initialize(uri, current_user)
# Sets the base uri for HTTParty, so we can use paths
self.class.base_uri(uri)
attr_accessor :current_resource_owner, :token
def initialize(current_user)
@current_resource_owner = current_user
end
......@@ -30,7 +29,7 @@ module Mattermost
raise NoSessionError unless create
begin
yield
yield self
ensure
destroy
end
......@@ -65,7 +64,9 @@ module Mattermost
return unless token_uri
self.token = request_token
self.class.headers("Cookie" => "MMAUTHTOKEN=#{self.token}")
@headers = {
"Authorization": "Bearer #{self.token}"
}
self.token
end
......@@ -98,11 +99,11 @@ module Mattermost
end
def get(path, options = {})
self.class.get(path, options)
self.class.get(path, options.merge(headers: @headers))
end
def post(path, options = {})
self.class.post(path, options)
self.class.post(path, options.merge(headers: @headers))
end
end
end
......@@ -6,7 +6,7 @@ describe Mattermost::Session, type: :request do
let(:gitlab_url) { "http://gitlab.com" }
let(:mattermost_url) { "http://mattermost.com" }
subject { described_class.new(mattermost_url, user) }
subject { described_class.new(user) }
# Needed for doorkeeper to function
it { is_expected.to respond_to(:current_resource_owner) }
......@@ -14,6 +14,10 @@ describe Mattermost::Session, type: :request do
it { is_expected.to respond_to(:authorization) }
it { is_expected.to respond_to(:strategy) }
before do
described_class.base_uri(mattermost_url)
end
describe '#with session' do
let(:location) { 'http://location.tld' }
let!(:stub) do
......@@ -72,18 +76,22 @@ describe Mattermost::Session, type: :request do
end
WebMock.stub_request(:post, "#{mattermost_url}/api/v3/users/logout").
to_return(headers: { Cookie: 'MMAUTHTOKEN=thisworksnow' }, status: 200)
to_return(headers: { Authorization: 'token thisworksnow' }, status: 200)
end
it 'can setup a session' do
subject.with_session { 1 + 1 }
subject.with_session do |session|
end
expect(subject.token).not_to be_nil
end
it 'returns the value of the block' do
value = subject.with_session { 1 + 1 }
result = subject.with_session do |session|
"value"
end
expect(value).to be(2)
expect(result).to eq("value")
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment