Add methods to work with manager role,add task to build user test data

This commit is contained in:
Matthew Fu authored and Christophe Vilayphiou committed 2012-01-24 12:28:32 +08:00
1 parent 18a82d7f47
commit 4df8ab6cc3
2 files changed
+78 -24

No files matched your search

+49 -24
View File
@@ -1,4 +1,7 @@
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 "admin"
def index
@@ -32,55 +35,77 @@ class Admin::ModuleAppsController < ApplicationController
end
end
def assign_sub_manager
@module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:sub_manager_id] rescue nil
unless @assign_to_user.nil?
if @module_app.assign_sub_manager(@assign_to_user,current_user)
flash[:notice] = t('admin.app_auth.assign_success_sub_manager')
unless @assign_to_user.nil?
if @module_app.assign_sub_manager(@assign_to_user,current_user)
flash[:notice] = t('admin.app_auth.assigning_manager.add_sub_manager_ok')
else
flash[:notice] = t('admin.app_auth.assigning_manager.add_sub_manager_fail')
end
else
flash[:notice] = t('admin.app_auth.assign_fail_sub_manager')
end
else
flash[:notice] = t('admin.app_auth.assign_fail_sub_manager_no_user')
end
redirect_to :action => "edit"
flash[:notice] = t('admin.app_auth.assigning_manager.failed_no_user')
end
redirect_to :action => "edit"
end
def assign_manager
@module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:manager_id] rescue nil
unless @assign_to_user.nil?
if @module_app.assign_manager(@assign_to_user,current_user)
flash[:notice] = t('admin.app_auth.assign_success_manager')
flash[:notice] = t('admin.app_auth.assigning_sub_manager.add_manager_ok')
else
flash[:notice] = t('admin.app_auth.assign_fail_manager')
flash[:notice] = t('admin.app_auth.assigning_sub_manager.add_manager_fail')
end
else
flash[:notice] = t('admin.app_auth.assign_fail_manager_no_user')
flash[:notice] = t('admin.app_auth.assigning_sub_manager.failed_no_user')
end
redirect_to :action => "edit"
end
def remove_manager
@module_app = ModuleApp.find(params[:id])
@app_manager = AppManager.find(params[:app_manager_id]) rescue nil
if @module_app.remove_manager(@app_manager.user)
flash[:notice] = t('admin.app_auth.delete_success_manager')
flash[:notice] = t('admin.app_auth.delete_manager.success')
else
flash[:notice] = t('admin.app_auth.delete_fail_manager')
flash[:notice] = t('admin.app_auth.delete_manager.fail')
end
redirect_to :action => "edit"
end
def remove_sub_manager
@module_app = ModuleApp.find(params[:id])
@app_sub_manager = AppManager.find(params[:app_sub_manager_id]) rescue nil
if @module_app.remove_sub_manager(@app_sub_manager.user)
flash[:notice] = t('admin.app_auth.delete_success_sub_manager')
flash[:notice] = t('admin.app_auth.delete_sub_manager.success')
else
flash[:notice] = t('admin.app_auth.delete_fail_sub_manager')
flash[:notice] = t('admin.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('admin.app_auth.operation_not_permitted')
redirect_to :action => "edit" # [TODO] maybe need to redirect to some other page
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.managers.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('admin.app_auth.operation_not_permitted')
redirect_to :action => "edit" # [TODO] maybe need to redirect to some other page
end
end