2013-02-06 03:16:51 +08:00
|
|
|
module Discourse
|
|
|
|
|
|
|
|
# When they try to do something they should be logged in for
|
|
|
|
class NotLoggedIn < Exception; end
|
|
|
|
|
|
|
|
# When the input is somehow bad
|
|
|
|
class InvalidParameters < Exception; end
|
|
|
|
|
|
|
|
# When they don't have permission to do something
|
|
|
|
class InvalidAccess < Exception; end
|
|
|
|
|
|
|
|
# When something they want is not found
|
|
|
|
class NotFound < Exception; end
|
|
|
|
|
|
|
|
|
|
|
|
# Get the current base URL for the current site
|
|
|
|
def self.current_hostname
|
|
|
|
RailsMultisite::ConnectionManagement.current_hostname
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.base_url
|
|
|
|
protocol = "http"
|
|
|
|
protocol = "https" if SiteSetting.use_ssl?
|
2013-02-06 13:22:11 +08:00
|
|
|
if SiteSetting.force_hostname.present?
|
|
|
|
result = "#{protocol}://#{SiteSetting.force_hostname}"
|
|
|
|
else
|
|
|
|
result = "#{protocol}://#{current_hostname}"
|
|
|
|
end
|
|
|
|
result << ":#{SiteSetting.port}" if SiteSetting.port.present? && SiteSetting.port.to_i > 0
|
2013-02-06 03:16:51 +08:00
|
|
|
result
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.enable_maintenance_mode
|
|
|
|
$redis.set maintenance_mode_key, 1
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.disable_maintenance_mode
|
|
|
|
$redis.del maintenance_mode_key
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.maintenance_mode?
|
|
|
|
!!$redis.get( maintenance_mode_key )
|
|
|
|
end
|
|
|
|
|
2013-02-18 14:39:54 +08:00
|
|
|
def self.git_version
|
2013-02-18 15:00:49 +08:00
|
|
|
return $git_version if $git_version
|
|
|
|
f = Rails.root.to_s + "/config/version"
|
|
|
|
require f if File.exists?("#{f}.rb")
|
|
|
|
|
2013-02-18 14:39:54 +08:00
|
|
|
begin
|
2013-02-18 15:00:49 +08:00
|
|
|
$git_version ||= `git rev-parse HEAD`.strip
|
2013-02-18 14:39:54 +08:00
|
|
|
rescue
|
|
|
|
$git_version = "unknown"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-02-06 03:16:51 +08:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def self.maintenance_mode_key
|
|
|
|
'maintenance_mode'
|
|
|
|
end
|
|
|
|
end
|