Files
orbit-basic/app/controllers/admin/module_apps_controller.rb
T
chris 65ac6980c4 Merge branch 'various_bugs' into nccu_master
Conflicts:
	Gemfile.lock
	app/assets/javascripts/ajax_form.js.erb
	app/assets/stylesheets/style.css.erb
	app/controllers/application_controller.rb
	app/controllers/sessions_controller.rb
	app/helpers/admin/web_link_helper.rb
	app/views/admin/attributes/_attribute_field.html.erb
	app/views/admin/designs/_form.html.erb
	app/views/admin/pages/_form.html.erb
	app/views/admin/sites/_side_bar.html.erb
	app/views/layouts/_orbit_bar.html.erb
	app/views/layouts/_side_bar.html.erb
	config/locales/en.yml
	config/locales/zh_tw.yml
	config/mongoid.yml
	vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb
	vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
	vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
	vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_filter.html.erb
	vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/index.html.erb
	vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_index.html.erb
	vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb
	vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_status.html.erb
	vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin.html.erb
	vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/index.html.erb
	vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb
2012-10-29 16:10:07 +08:00

142 lines
4.3 KiB
Ruby

class Admin::ModuleAppsController < ApplicationController
before_filter :user_has_manager_privilege?, :only => [ :assign_manager, :remove_manager ]
before_filter :user_has_sub_manager_privilege?, :only => [ :assign_sub_manager, :remove_sub_manager ]
layout "new_admin"
def index
@module_apps = ModuleApp.all.entries
end
def reload_frontend_pages
@categories =[]
@module_app = ModuleApp.find(params[:id])
@frontend_path = @module_app.widgets.keys[0] if ( !@module_app.widgets.blank? && @module_app.widgets[0].blank? )
@frontend_style = @module_app.widgets[@frontend_path] if ( !@frontend_path.blank? )
case @module_app.key
when 'announcement'
@categories = BulletinCategory.all
@tags = AnnouncementTag.all
when 'news'
@categories = NewsBulletinCategory.all
@tags = NewsTag.all
when 'web_resource'
@categories = WebLinkCategory.all
@tags = WebResourceTag.all
when 'archive'
@categories = ArchiveFileCategory.all
@tags = ArchiveTag.all
end
respond_to do |format|
format.js {}
end
end
def module_auth_proc
@module_app = ModuleApp.find(params[:id])
end
def edit
@module_app = ModuleApp.find(params[:id])
end
def show
@module_app = ModuleApp.find(params[:id])
end
def update
@module_app = ModuleApp.find(params[:id])
unless params['module_app']['enable_frontend'].nil?
@module_app.update_attribute('enable_frontend',params['module_app']['enable_frontend'])
@module_app.save!
end
@attribute = @module_app
respond_to do |format|
format.html { redirect_to :action => :index }
format.js { render 'admin/attributes/toggle_enable' }
end
end
def assign_sub_manager
unless @assign_to_user.nil? || @assign_to_user.admin?
if @module_app.assign_sub_manager(@assign_to_user,current_user)
flash[:notice] = t('app_auth.assigning_manager.add_manager_ok')
else
flash[:notice] = t('app_auth.assigning_manager.add_manager_fail')
end
else
flash[:notice] = t('app_auth.failed_no_user')
end
flash[:notice] = t('app_auth.can_not_add_this_user')
redirect_to :action => "edit"
end
def assign_manager
unless @assign_to_user.nil? || @assign_to_user.admin?
if @module_app.assign_manager(@assign_to_user,current_user)
flash[:notice] = t('app_auth.assigning_sub_manager.add_sub_manager_ok')
else
flash[:notice] = t('app_auth.assigning_sub_manager.add_sub_manager_fail')
end
else
flash[:notice] = t('app_auth.failed_no_user')
end
flash[:notice] = t('app_auth.can_not_add_this_user')
redirect_to :action => "edit"
end
def remove_manager
@app_manager = AppManager.find(params[:app_manager_id])
if @module_app.remove_manager(@app_manager.user)
flash[:notice] = t('app_auth.delete_manager.success')
else
flash[:notice] = t('app_auth.delete_manager.fail')
end
redirect_to :action => "edit"
end
def remove_sub_manager
@app_sub_manager = AppManager.find(params[:app_sub_manager_id])
if @module_app.remove_sub_manager(@app_sub_manager.user)
flash[:notice] = t('app_auth.delete_sub_manager.success')
else
flash[:notice] = t('app_auth.delete_sub_manager.fail')
end
redirect_to :action => "edit"
end
private
def user_has_manager_privilege?
@module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:manager][:id] rescue nil
if current_user.admin? #only admin can assign app's manager
return
end
#user is not permited to do that
flash[:notice] = t('app_auth.operation_not_permitted')
render :nothing => true, :status => 403
end
def user_has_sub_manager_privilege?
@module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:sub_manager][:id] rescue nil
if current_user.admin? || @module_app.managing_users.include?(current_user) #admin or app's manager can assign app's subanager
return
end
#user is not permited to do that
flash[:notice] = t('app_auth.operation_not_permitted')
render :nothing => true, :status => 403
end
end