fronted open switch and backend openness

This commit is contained in:
Matt K. Fu 2013-04-23 18:48:18 +08:00
parent 11067ef34f
commit 5ff7dfbac6
14 changed files with 56 additions and 10 deletions

View File

@ -5,8 +5,9 @@ class Admin::DashboardsController < OrbitBackendController
# before_filter :is_admin? # before_filter :is_admin?
def index def index
@module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'page_context', 'web_link') check_backend_openness
@recent_updated = get_recently_updated('bulletin', 'page_context', 'web_link') @module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'page_context', 'web_link')
@recent_updated = get_recently_updated('bulletin', 'page_context', 'web_link')
@most_visited = get_most_visited('bulletin', 'page_context') @most_visited = get_most_visited('bulletin', 'page_context')
end end

View File

@ -16,6 +16,7 @@ class Admin::SitesController < OrbitBackendController
def update def update
@site.update_attributes(params[:site]) @site.update_attributes(params[:site])
site_restart
redirect_to :back redirect_to :back
end end

View File

@ -17,7 +17,15 @@ class ApplicationController < ActionController::Base
helper_attr :site_valid_locales helper_attr :site_valid_locales
def check_backend_openness
if !Me.backend_openness_on
redirect_to '/users/sign_in' if not (authenticate_user! and is_member? )
end
end
def site_restart
Resque.enqueue(RestartServer)
end
def set_current_user def set_current_user
User.current = current_or_guest_user User.current = current_or_guest_user

View File

@ -15,6 +15,7 @@ class OrbitBackendController < ApplicationController
private private
def force_order_for_visitor def force_order_for_visitor
check_backend_openness
setup_vars setup_vars
set_current_user set_current_user
end end

View File

@ -1,8 +1,15 @@
class PagesController < ApplicationController class PagesController < ApplicationController
include ApplicationHelper include ApplicationHelper
before_filter :get_item, :only => [:index_from_link, :show_from_link] before_filter :get_item, :only => [:index_from_link, :show_from_link]
before_filter :check_frontend_open, :only => [:index,:show]
# caches_page :index # caches_page :index
def check_frontend_open
if Me.frontend_closed
redirect_to '/admin/dashboards'
end
end
def index def index
@item = Page.find_by_name('home') @item = Page.find_by_name('home')

View File

@ -0,0 +1,8 @@
class RestartServer
@queue = :high
def self.perform()
temp_directory = "#{Rails.root}/tmp/"
%x[touch #{temp_directory}restart.txt ]
end
end

View File

@ -11,6 +11,10 @@ class Site
field :roaming_id field :roaming_id
field :private_key, :type => Binary field :private_key, :type => Binary
field :public_key, :type => Binary field :public_key, :type => Binary
field :frontend_closed, :type => Boolean, :default => false
field :backend_openness_on, :type => Boolean, :default => false
field :title_always_on, :type => Boolean, :default => false field :title_always_on, :type => Boolean, :default => false
field :dashbroad_allow_visitor, :type => Boolean, :default => false field :dashbroad_allow_visitor, :type => Boolean, :default => false
field :mail_settings, :type => Hash field :mail_settings, :type => Hash

View File

@ -35,6 +35,14 @@
</div> </div>
<% end %> <% end %>
<% end %> <% end %>
<div class="control-group">
<label class="control-label"><%= t 'site.openness' %></label>
<div class="controls">
<%= f.check_box :frontend_closed %><%= I18n.t('site.frontend_closed') %><br/>
<%= f.check_box :backend_openness_on %><%= I18n.t('site.backend_openness_on') %>
<p class="help-block"><%= (t 'site.search_help').html_safe %></p>
</div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label"><%= t 'site.search' %></label> <label class="control-label"><%= t 'site.search' %></label>
<div class="controls"> <div class="controls">

View File

@ -1,5 +1,8 @@
<a class="brand dropdown-toggle" data-toggle="dropdown" href="#">Orbit</a> <a class="brand dropdown-toggle" data-toggle="dropdown" href="#">Orbit</a>
<ul class="dropdown-menu"> <% if Me.backend_openness_on %>
<li><%= link_to content_tag(:i, nil, :class => 'icons-gauge') + t(:dashboard_), admin_dashboards_path %></li> <ul class="dropdown-menu">
<li><%= link_to content_tag(:i, nil, :class => 'icons-users') + t(:member), admin_users_new_interface_index_path %></li> <li><%= link_to content_tag(:i, nil, :class => 'icons-gauge') + t(:dashboard_), admin_dashboards_path %></li>
</ul> <li><%= link_to content_tag(:i, nil, :class => 'icons-users') + t(:member), admin_users_new_interface_index_path %></li>
</ul>
<% end %>

View File

@ -38,7 +38,7 @@
<li class="dropdown language"> <li class="dropdown language">
<a class="dropdown-toggle orbit-bar-language" href="#" data-toggle="dropdown" data-icons="&#xe054;"></a> <a class="dropdown-toggle orbit-bar-language" href="#" data-toggle="dropdown" data-icons="&#xe054;"></a>
<ul class="dropdown-menu language-menu"> <ul class="dropdown-menu language-menu">
<% @site_in_use_locales.each do |locale| %> <% @site_in_use_locales.compact.each do |locale| %>
<%= content_tag :li, (link_to t(:_locale, :locale => locale), add_locale(remove_locale((referer rescue request.fullpath)), locale)), :class => (I18n.locale.eql?(locale.to_sym) ? 'active' : nil) %> <%= content_tag :li, (link_to t(:_locale, :locale => locale), add_locale(remove_locale((referer rescue request.fullpath)), locale)), :class => (I18n.locale.eql?(locale.to_sym) ? 'active' : nil) %>
<% end %> <% end %>
</ul> </ul>

View File

@ -77,5 +77,3 @@ module Orbit
end end
Orbit_Apps = [] Orbit_Apps = []
VALID_LOCALES = ["en", "zh_tw"] VALID_LOCALES = ["en", "zh_tw"]

View File

@ -5,3 +5,4 @@ YAML::ENGINE.yamler = 'syck'
# Initialize the rails application # Initialize the rails application
Orbit::Application.initialize! Orbit::Application.initialize!
Me = Site.first

View File

@ -370,17 +370,20 @@ en:
summary: Summary summary: Summary
thumbnail: Thumbnail thumbnail: Thumbnail
site: site:
backend_openness_on: Backend Openness
default_image: Site default image default_image: Site default image
description: Site description description: Site description
description_help: Description Guide description_help: Description Guide
footer: Site footer footer: Site footer
footer_help: Footer Guide footer_help: Footer Guide
frontend_closed: Frontend Closed
header: Site header header: Site header
info: Site information info: Site information
keywords: Site keywords keywords: Site keywords
keywords_help: Keyword Guide keywords_help: Keyword Guide
language: Site language language: Site language
mobile_version: Mobile version mobile_version: Mobile version
openness: Openness
search: Site Search search: Site Search
search_help: Please Enter the search argument for Google search. search_help: Please Enter the search argument for Google search.
settings: Site setting settings: Site setting

View File

@ -370,6 +370,8 @@ zh_tw:
summary: 摘要 summary: 摘要
thumbnail: 縮圖 thumbnail: 縮圖
site: site:
frontend_closed: 前台關閉?
backend_openness_on: 開啟開放式後台(訪客可遊覽)
default_image: 預設圖像 default_image: 預設圖像
description: 網站描述 description: 網站描述
description_help: 網站描述說明 description_help: 網站描述說明
@ -381,6 +383,7 @@ zh_tw:
keywords_help: 關鍵字說明 keywords_help: 關鍵字說明
language: 網站語言 language: 網站語言
mobile_version: 手機版 mobile_version: 手機版
openness: 開放模式
search: 網站搜尋 search: 網站搜尋
search_help: 請輸入送交Google搜尋的參數 search_help: 請輸入送交Google搜尋的參數
settings: 基本設定 settings: 基本設定