From 39eab7c425d9adccbb9ea4502946620aaf4e9fb5 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Thu, 14 Feb 2013 12:57:26 -0500 Subject: [PATCH] Replace mentions of mothership with discourse_hub --- app/controllers/admin/versions_controller.rb | 6 +-- app/controllers/users_controller.rb | 30 +++++++-------- app/models/site_setting.rb | 2 +- app/models/user.rb | 14 +++---- config/locales/en.yml | 2 +- lib/{mothership.rb => discourse_hub.rb} | 12 +++--- ...thership_spec.rb => discourse_hub_spec.rb} | 37 +++++++++---------- spec/controllers/users_controller_spec.rb | 36 +++++++++--------- spec/models/site_setting_spec.rb | 10 ++--- 9 files changed, 74 insertions(+), 75 deletions(-) rename lib/{mothership.rb => discourse_hub.rb} (74%) rename spec/components/{mothership_spec.rb => discourse_hub_spec.rb} (68%) diff --git a/app/controllers/admin/versions_controller.rb b/app/controllers/admin/versions_controller.rb index 6ee19458a08..0723e9e9665 100644 --- a/app/controllers/admin/versions_controller.rb +++ b/app/controllers/admin/versions_controller.rb @@ -1,15 +1,15 @@ -require_dependency 'mothership' +require_dependency 'discourse_hub' require_dependency 'version' class Admin::VersionsController < Admin::AdminController def show if SiteSetting.discourse_org_access_key.present? - render json: success_json.merge( latest_version: Mothership.current_discourse_version, installed_version: Discourse::VERSION::STRING ) + render json: success_json.merge( latest_version: DiscourseHub.current_discourse_version, installed_version: Discourse::VERSION::STRING ) else # Don't contact discourse.org render json: success_json.merge( latest_version: Discourse::VERSION::STRING, installed_version: Discourse::VERSION::STRING ) end rescue RestClient::Forbidden - render json: {errors: [I18n.t("mothership.access_token_problem")]} + render json: {errors: [I18n.t("discourse_hub.access_token_problem")]} end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d49d6ee7096..b81dbf58f54 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,4 +1,4 @@ -require_dependency 'mothership' +require_dependency 'discourse_hub' class UsersController < ApplicationController @@ -80,7 +80,7 @@ class UsersController < ApplicationController validator = UsernameValidator.new(params[:username]) if !validator.valid_format? render json: {errors: validator.errors} - elsif !SiteSetting.call_mothership? + elsif !SiteSetting.call_discourse_hub? if User.username_available?(params[:username]) render json: {available: true} else @@ -88,16 +88,16 @@ class UsersController < ApplicationController end else - # Contact the mothership + # Contact the Discourse Hub server email_given = (params[:email].present? or current_user.present?) available_locally = User.username_available?(params[:username]) global_match = false - available_globally, suggestion_from_mothership = begin + available_globally, suggestion_from_discourse_hub = begin if email_given - global_match, available, suggestion = Mothership.nickname_match?( params[:username], params[:email] || current_user.email ) + global_match, available, suggestion = DiscourseHub.nickname_match?( params[:username], params[:email] || current_user.email ) [available || global_match, suggestion] else - Mothership.nickname_available?(params[:username]) + DiscourseHub.nickname_available?(params[:username]) end end @@ -105,12 +105,12 @@ class UsersController < ApplicationController render json: {available: true, global_match: (global_match ? true : false)} elsif available_locally and !available_globally if email_given - # Nickname and email do not match what's registered on the mothership. - render json: {available: false, global_match: false, suggestion: suggestion_from_mothership} + # Nickname and email do not match what's registered on the discourse hub. + render json: {available: false, global_match: false, suggestion: suggestion_from_discourse_hub} else - # The nickname is available locally, but is registered on the mothership. + # The nickname is available locally, but is registered on the discourse hub. # We need an email to see if the nickname belongs to this person. - # Don't give a suggestion until we get the email and try to match it with on the mothership. + # Don't give a suggestion until we get the email and try to match it with on the discourse hub. render json: {available: false} end elsif available_globally and !available_locally @@ -118,12 +118,12 @@ class UsersController < ApplicationController render json: {available: false, suggestion: User.suggest_username(params[:username])} else # Not available anywhere. - render json: {available: false, suggestion: suggestion_from_mothership} + render json: {available: false, suggestion: suggestion_from_discourse_hub} end end rescue RestClient::Forbidden - render json: {errors: [I18n.t("mothership.access_token_problem")]} + render json: {errors: [I18n.t("discourse_hub.access_token_problem")]} end def create @@ -145,7 +145,7 @@ class UsersController < ApplicationController end user.password_required unless auth - Mothership.register_nickname( user.username, user.email ) if user.valid? and SiteSetting.call_mothership? + DiscourseHub.register_nickname( user.username, user.email ) if user.valid? and SiteSetting.call_discourse_hub? if user.save @@ -188,10 +188,10 @@ class UsersController < ApplicationController else render :json => {success: false, message: I18n.t("login.errors", errors: user.errors.full_messages.join("\n"))} end - rescue Mothership::NicknameUnavailable + rescue DiscourseHub::NicknameUnavailable render :json => {success: false, message: I18n.t("login.errors", errors:I18n.t("login.not_available", suggestion: User.suggest_username(params[:username])) )} rescue RestClient::Forbidden - render json: {errors: [I18n.t("mothership.access_token_problem")]} + render json: {errors: [I18n.t("discourse_hub.access_token_problem")]} end def get_honeypot_value diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index 60ecbb2c12a..86ea8b2f6bf 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -138,7 +138,7 @@ class SiteSetting < ActiveRecord::Base setting(:new_user_period_days, 2) - def self.call_mothership? + def self.call_discourse_hub? self.enforce_global_nicknames? and self.discourse_org_access_key.present? end diff --git a/app/models/user.rb b/app/models/user.rb index 2b374122a19..0696a8da1d6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -91,9 +91,9 @@ class User < ActiveRecord::Base def self.create_for_email(email, opts={}) username = suggest_username(email) - if SiteSetting.call_mothership? + if SiteSetting.call_discourse_hub? begin - match, available, suggestion = Mothership.nickname_match?( username, email ) + match, available, suggestion = DiscourseHub.nickname_match?( username, email ) username = suggestion unless match or available rescue => e Rails.logger.error e.message + "\n" + e.backtrace.join("\n") @@ -104,9 +104,9 @@ class User < ActiveRecord::Base user.trust_level = opts[:trust_level] if opts[:trust_level].present? user.save! - if SiteSetting.call_mothership? + if SiteSetting.call_discourse_hub? begin - Mothership.register_nickname( username, email ) + DiscourseHub.register_nickname( username, email ) rescue => e Rails.logger.error e.message + "\n" + e.backtrace.join("\n") end @@ -142,10 +142,10 @@ class User < ActiveRecord::Base current_username = self.username self.username = new_username - if SiteSetting.call_mothership? and self.valid? + if SiteSetting.call_discourse_hub? and self.valid? begin - Mothership.change_nickname( current_username, new_username ) - rescue Mothership::NicknameUnavailable + DiscourseHub.change_nickname( current_username, new_username ) + rescue DiscourseHub::NicknameUnavailable return false rescue => e Rails.logger.error e.message + "\n" + e.backtrace.join("\n") diff --git a/config/locales/en.yml b/config/locales/en.yml index 14e43022775..d749bbe2772 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1337,5 +1337,5 @@ en: If the above link is not clickable, try copying and pasting it into the address bar of your web browser. - mothership: + discourse_hub: access_token_problem: "Tell an admin: Please update the site settings to include the correct discourse_org_access_key." diff --git a/lib/mothership.rb b/lib/discourse_hub.rb similarity index 74% rename from lib/mothership.rb rename to lib/discourse_hub.rb index 26a126fdc01..c8b04002007 100644 --- a/lib/mothership.rb +++ b/lib/discourse_hub.rb @@ -1,6 +1,6 @@ require_dependency 'rest_client' -module Mothership +module DiscourseHub class NicknameUnavailable < RuntimeError; end @@ -41,25 +41,25 @@ module Mothership private def self.get(rel_url, params={}) - response = RestClient.get( "#{mothership_base_url}#{rel_url}", {params: {access_token: access_token}.merge(params), accept: accepts } ) + response = RestClient.get( "#{hub_base_url}#{rel_url}", {params: {access_token: access_token}.merge(params), accept: accepts } ) JSON.parse(response) end def self.post(rel_url, params={}) - response = RestClient.post( "#{mothership_base_url}#{rel_url}", {access_token: access_token}.merge(params), content_type: :json, accept: accepts ) + response = RestClient.post( "#{hub_base_url}#{rel_url}", {access_token: access_token}.merge(params), content_type: :json, accept: accepts ) JSON.parse(response) end def self.put(rel_url, params={}) - response = RestClient.put( "#{mothership_base_url}#{rel_url}", {access_token: access_token}.merge(params), content_type: :json, accept: accepts ) + response = RestClient.put( "#{hub_base_url}#{rel_url}", {access_token: access_token}.merge(params), content_type: :json, accept: accepts ) JSON.parse(response) end - def self.mothership_base_url + def self.hub_base_url if Rails.env == 'production' 'http://api.discourse.org/api' else - 'http://local.mothership:3000/api' + 'http://local.hub:3000/api' end end diff --git a/spec/components/mothership_spec.rb b/spec/components/discourse_hub_spec.rb similarity index 68% rename from spec/components/mothership_spec.rb rename to spec/components/discourse_hub_spec.rb index 9b2a2ec3bd6..9941bf87b04 100644 --- a/spec/components/mothership_spec.rb +++ b/spec/components/discourse_hub_spec.rb @@ -1,16 +1,16 @@ require 'spec_helper' -require_dependency 'mothership' +require_dependency 'discourse_hub' -describe Mothership do +describe DiscourseHub do describe '#nickname_available?' do it 'should return true when nickname is available and no suggestion' do RestClient.stubs(:get).returns( {success: 'OK', available: true}.to_json ) - Mothership.nickname_available?('MacGyver').should == [true, nil] + DiscourseHub.nickname_available?('MacGyver').should == [true, nil] end it 'should return false and a suggestion when nickname is not available' do RestClient.stubs(:get).returns( {success: 'OK', available: false, suggestion: 'MacGyver1'}.to_json ) - available, suggestion = Mothership.nickname_available?('MacGyver') + available, suggestion = DiscourseHub.nickname_available?('MacGyver') available.should be_false suggestion.should_not be_nil end @@ -21,12 +21,12 @@ describe Mothership do describe '#nickname_match?' do it 'should return true when it is a match and no suggestion' do RestClient.stubs(:get).returns( {success: 'OK', match: true, available: false}.to_json ) - Mothership.nickname_match?('MacGyver', 'macg@example.com').should == [true, false, nil] + DiscourseHub.nickname_match?('MacGyver', 'macg@example.com').should == [true, false, nil] end it 'should return false and a suggestion when it is not a match and the nickname is not available' do RestClient.stubs(:get).returns( {success: 'OK', match: false, available: false, suggestion: 'MacGyver1'}.to_json ) - match, available, suggestion = Mothership.nickname_match?('MacGyver', 'macg@example.com') + match, available, suggestion = DiscourseHub.nickname_match?('MacGyver', 'macg@example.com') match.should be_false available.should be_false suggestion.should_not be_nil @@ -34,7 +34,7 @@ describe Mothership do it 'should return false and no suggestion when it is not a match and the nickname is available' do RestClient.stubs(:get).returns( {success: 'OK', match: false, available: true}.to_json ) - match, available, suggestion = Mothership.nickname_match?('MacGyver', 'macg@example.com') + match, available, suggestion = DiscourseHub.nickname_match?('MacGyver', 'macg@example.com') match.should be_false available.should be_true suggestion.should be_nil @@ -44,51 +44,50 @@ describe Mothership do describe '#register_nickname' do it 'should return true when registration succeeds' do RestClient.stubs(:post).returns( {success: 'OK'}.to_json ) - Mothership.register_nickname('MacGyver', 'macg@example.com').should be_true + DiscourseHub.register_nickname('MacGyver', 'macg@example.com').should be_true end it 'should return raise an exception when registration fails' do RestClient.stubs(:post).returns( {failed: -200}.to_json ) expect { - Mothership.register_nickname('MacGyver', 'macg@example.com') - }.to raise_error(Mothership::NicknameUnavailable) + DiscourseHub.register_nickname('MacGyver', 'macg@example.com') + }.to raise_error(DiscourseHub::NicknameUnavailable) end end describe '#current_discourse_version' do it 'should return the latest version of discourse' do RestClient.stubs(:get).returns( {success: 'OK', version: 1.0}.to_json ) - Mothership.current_discourse_version().should == 1.0 + DiscourseHub.current_discourse_version().should == 1.0 end end describe '#change_nickname' do it 'should return true when nickname is changed successfully' do RestClient.stubs(:put).returns( {success: 'OK'}.to_json ) - Mothership.change_nickname('MacGyver', 'MacG').should be_true + DiscourseHub.change_nickname('MacGyver', 'MacG').should be_true end it 'should return raise NicknameUnavailable when nickname is not available' do RestClient.stubs(:put).returns( {failed: -200}.to_json ) expect { - Mothership.change_nickname('MacGyver', 'MacG') - }.to raise_error(Mothership::NicknameUnavailable) + DiscourseHub.change_nickname('MacGyver', 'MacG') + }.to raise_error(DiscourseHub::NicknameUnavailable) end - # TODO: General error handling in mothership.rb # it 'should return raise NicknameUnavailable when nickname does not belong to this forum' do # RestClient.stubs(:put).returns( {failed: -13}.to_json ) # expect { - # Mothership.change_nickname('MacGyver', 'MacG') - # }.to raise_error(Mothership::ActionForbidden) + # DiscourseHub.change_nickname('MacGyver', 'MacG') + # }.to raise_error(DiscourseHub::ActionForbidden) # end # it 'should return raise NicknameUnavailable when nickname does not belong to this forum' do # RestClient.stubs(:put).returns( {failed: -13}.to_json ) # expect { - # Mothership.change_nickname('MacGyver', 'MacG') - # }.to raise_error(Mothership::ActionForbidden) + # DiscourseHub.change_nickname('MacGyver', 'MacG') + # }.to raise_error(DiscourseHub::ActionForbidden) # end end end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 76383c63c41..c5ad0f84396 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -270,7 +270,7 @@ describe UsersController do before do @user = Fabricate.build(:user) @user.password = "strongpassword" - Mothership.stubs(:register_nickname).returns([true, nil]) + DiscourseHub.stubs(:register_nickname).returns([true, nil]) end context 'when creating a non active user (unconfirmed email)' do @@ -438,7 +438,7 @@ describe UsersController do context '.check_username' do before do - Mothership.stubs(:nickname_available?).returns([true, nil]) + DiscourseHub.stubs(:nickname_available?).returns([true, nil]) end it 'raises an error without a username parameter' do @@ -469,11 +469,11 @@ describe UsersController do end end - context 'when call_mothership is disabled' do + context 'when call_discourse_hub is disabled' do before do - SiteSetting.stubs(:call_mothership?).returns(false) - Mothership.expects(:nickname_available?).never - Mothership.expects(:nickname_match?).never + SiteSetting.stubs(:call_discourse_hub?).returns(false) + DiscourseHub.expects(:nickname_available?).never + DiscourseHub.expects(:nickname_match?).never end context 'available everywhere' do @@ -543,15 +543,15 @@ describe UsersController do end end - context 'when call_mothership is enabled' do + context 'when call_discourse_hub is enabled' do before do - SiteSetting.stubs(:call_mothership?).returns(true) + SiteSetting.stubs(:call_discourse_hub?).returns(true) end context 'available locally and globally' do before do - Mothership.stubs(:nickname_available?).returns([true, nil]) - Mothership.stubs(:nickname_match?).returns([false, true, nil]) # match = false, available = true, suggestion = nil + DiscourseHub.stubs(:nickname_available?).returns([true, nil]) + DiscourseHub.stubs(:nickname_match?).returns([false, true, nil]) # match = false, available = true, suggestion = nil end shared_examples_for 'check_username when nickname is available everywhere' do @@ -599,7 +599,7 @@ describe UsersController do context 'available locally but not globally' do before do - Mothership.stubs(:nickname_available?).returns([false, 'suggestion']) + DiscourseHub.stubs(:nickname_available?).returns([false, 'suggestion']) end context 'email param is not given' do @@ -618,7 +618,7 @@ describe UsersController do context 'email matches global nickname' do before do - Mothership.stubs(:nickname_match?).returns([true, false, nil]) + DiscourseHub.stubs(:nickname_match?).returns([true, false, nil]) xhr :get, :check_username, username: 'BruceWayne', email: 'brucie@example.com' end it_should_behave_like 'when username is available everywhere' @@ -630,7 +630,7 @@ describe UsersController do context 'email does not match global nickname' do before do - Mothership.stubs(:nickname_match?).returns([false, false, 'suggestion']) + DiscourseHub.stubs(:nickname_match?).returns([false, false, 'suggestion']) xhr :get, :check_username, username: 'BruceWayne', email: 'brucie@example.com' end it_should_behave_like 'when username is unavailable locally' @@ -645,7 +645,7 @@ describe UsersController do let!(:user) { Fabricate(:user) } before do - Mothership.stubs(:nickname_available?).returns([false, 'suggestion']) + DiscourseHub.stubs(:nickname_available?).returns([false, 'suggestion']) xhr :get, :check_username, username: user.username end @@ -656,7 +656,7 @@ describe UsersController do let!(:user) { Fabricate(:user) } before do - Mothership.stubs(:nickname_available?).returns([true, nil]) + DiscourseHub.stubs(:nickname_available?).returns([true, nil]) xhr :get, :check_username, username: user.username end @@ -666,9 +666,9 @@ describe UsersController do context 'when discourse_org_access_key is wrong' do before do - SiteSetting.stubs(:call_mothership?).returns(true) - Mothership.stubs(:nickname_available?).raises(RestClient::Forbidden) - Mothership.stubs(:nickname_match?).raises(RestClient::Forbidden) + SiteSetting.stubs(:call_discourse_hub?).returns(true) + DiscourseHub.stubs(:nickname_available?).raises(RestClient::Forbidden) + DiscourseHub.stubs(:nickname_match?).raises(RestClient::Forbidden) end it 'should return an error message' do diff --git a/spec/models/site_setting_spec.rb b/spec/models/site_setting_spec.rb index bfe0fa969ea..66c7d484971 100644 --- a/spec/models/site_setting_spec.rb +++ b/spec/models/site_setting_spec.rb @@ -77,33 +77,33 @@ describe SiteSetting do end end - describe 'call_mothership?' do + describe 'call_discourse_hub?' do it 'should be true when enforce_global_nicknames is true and discourse_org_access_key is set' do SiteSetting.enforce_global_nicknames = true SiteSetting.discourse_org_access_key = 'asdfasfsafd' SiteSetting.refresh! - SiteSetting.call_mothership?.should == true + SiteSetting.call_discourse_hub?.should == true end it 'should be false when enforce_global_nicknames is false and discourse_org_access_key is set' do SiteSetting.enforce_global_nicknames = false SiteSetting.discourse_org_access_key = 'asdfasfsafd' SiteSetting.refresh! - SiteSetting.call_mothership?.should == false + SiteSetting.call_discourse_hub?.should == false end it 'should be false when enforce_global_nicknames is true and discourse_org_access_key is not set' do SiteSetting.enforce_global_nicknames = true SiteSetting.discourse_org_access_key = '' SiteSetting.refresh! - SiteSetting.call_mothership?.should == false + SiteSetting.call_discourse_hub?.should == false end it 'should be false when enforce_global_nicknames is false and discourse_org_access_key is not set' do SiteSetting.enforce_global_nicknames = false SiteSetting.discourse_org_access_key = '' SiteSetting.refresh! - SiteSetting.call_mothership?.should == false + SiteSetting.call_discourse_hub?.should == false end end