discourse/lib/discourse.rb

73 lines
1.5 KiB
Ruby
Raw Normal View History

2013-02-06 03:16:51 +08:00
module Discourse
2013-02-26 00:42:20 +08:00
# When they try to do something they should be logged in for
2013-02-06 03:16:51 +08:00
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
2013-05-31 06:39:52 +08:00
if SiteSetting.force_hostname.present?
SiteSetting.force_hostname
else
2013-05-31 06:39:52 +08:00
RailsMultisite::ConnectionManagement.current_hostname
end
end
2013-05-31 06:39:52 +08:00
def self.base_url
default_port = 80
2013-02-06 03:16:51 +08:00
protocol = "http"
2013-05-31 06:39:52 +08:00
if SiteSetting.use_ssl?
protocol = "https"
default_port = 443
2013-02-06 13:22:11 +08:00
end
2013-02-06 03:16:51 +08:00
2013-05-31 06:39:52 +08:00
result = "#{protocol}://#{current_hostname}"
if SiteSetting.port.present? && SiteSetting.port.to_i > 0 && SiteSetting.port.to_i != default_port
result << ":#{SiteSetting.port}"
end
result
end
2013-02-06 03:16:51 +08:00
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
def self.git_version
2013-02-26 00:42:20 +08:00
return $git_version if $git_version
2013-02-18 15:00:49 +08:00
f = Rails.root.to_s + "/config/version"
require f if File.exists?("#{f}.rb")
begin
2013-02-18 15:00:49 +08:00
$git_version ||= `git rev-parse HEAD`.strip
rescue
$git_version = "unknown"
end
end
2013-02-06 03:16:51 +08:00
private
def self.maintenance_mode_key
'maintenance_mode'
end
end