diff --git a/app/controllers/admin/official_module_controller.rb b/app/controllers/admin/official_module_controller.rb index e5f8ab6..554743c 100644 --- a/app/controllers/admin/official_module_controller.rb +++ b/app/controllers/admin/official_module_controller.rb @@ -1,11 +1,11 @@ class Admin::OfficialModuleController < OrbitAdminController - layout "structure" def set_master_key @master_password = MasterPassword.first rescue nil if @master_password.nil? @master_password = MasterPassword.new end + render :layout => "structure" end def update_master_password @@ -26,7 +26,43 @@ class Admin::OfficialModuleController < OrbitAdminController redirect_to admin_site_set_master_key_path(current_site) end - + def index + @managers = ServerAbilityManager.all.order_by(sort) + .with_categories(filters("category")) + .with_tags(filters("tag")).desc(:created_at) + @table_fields = ["site_name_layout", "max_site_ability", "site_num","site_ip"] + @tags = @module_app.tags + @categories = @module_app.categories.enabled + @filter_fields = filter_fields_without_status(@categories, @tags) + @managers = search_data(@managers,[:title,:site_domain]).page(params[:page]).per(10) + + if request.xhr? + render :partial => "index" + end + end + + def set_server_ability + store_token = params[:official_module_id] + @manager = ServerAbilityManager.where(store_token: store_token).first || ServerAbilityManager.new(id: nil) + end + + def update_server_ability + manager_params = params.require(:server_ability_manager).permit! + store_token = manager_params[:store_token] + manager = ServerAbilityManager.where(store_token: store_token).first + if manager.nil? + r_site = RegisteredSite.where(uid: store_token).first + manager = ServerAbilityManager.create(store_token: store_token, site_name: r_site.title,site_url: r_site.site_domain,site_ip: r_site.real_ip || r_site.ip[0]) + end + manager.update_attributes(manager_params) + redirect_to :action => "index" + end + + def delete + store_token = params[:official_module_id] + ServerAbilityManager.where(store_token: store_token).first.destroy + redirect_to :action => "index" + end private def password_params diff --git a/app/controllers/client_sites_controller.rb b/app/controllers/client_sites_controller.rb index 8fbdedf..dc59b5d 100644 --- a/app/controllers/client_sites_controller.rb +++ b/app/controllers/client_sites_controller.rb @@ -100,4 +100,26 @@ class ClientSitesController < ApplicationController end end + def check_server_ability + site_num = params[:site_num] + store_token = params[:store_token] + site_name = params[:site_name] + site_url = params[:site_url] + manager = ServerAbilityManager.where(store_token: store_token).first + ability = manager.max_site_ability rescue 0 + site_ip = request.remote_ip + update_params = { + site_ip: site_ip, + site_num: site_num, + site_url: site_url + } + if manager.nil? + update_params = update_params.merge({store_token: store_token, + site_name: site_name}) + ServerAbilityManager.create(update_params) + else + manager.update_attributes(update_params) + end + render :json => {ability: ability} + end end \ No newline at end of file diff --git a/app/models/server_ability_manager.rb b/app/models/server_ability_manager.rb new file mode 100644 index 0000000..99f124a --- /dev/null +++ b/app/models/server_ability_manager.rb @@ -0,0 +1,35 @@ +class ServerAbilityManager + include Mongoid::Document + include Mongoid::Timestamps + include OrbitCategory::Categorizable + include OrbitTag::Taggable + field :store_token + field :site_name + field :site_url + field :site_ip + field :site_num, type: Integer, default: 0 + field :max_site_ability, type: Integer, default: 0 + def site_name_layout(url=nil,site_name=nil) + url = self.site_url if url.nil? + site_name = self.site_name if site_name.nil? + "#{site_name} +
+ <%= manager.send(f).to_s.html_safe %> + | + <% end %> +