Add methods to work with manager role,add task to build user test data
This commit is contained in:
		
							parent
							
								
									42c89220e3
								
							
						
					
					
						commit
						1dea9ba156
					
				|  | @ -1,4 +1,7 @@ | ||||||
| class Admin::ModuleAppsController < ApplicationController | 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" |   layout "admin" | ||||||
| 
 | 
 | ||||||
|   def index |   def index | ||||||
|  | @ -32,55 +35,77 @@ class Admin::ModuleAppsController < ApplicationController | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |    | ||||||
|   def assign_sub_manager |   def assign_sub_manager | ||||||
|     @module_app = ModuleApp.find(params[:id]) |       unless @assign_to_user.nil? | ||||||
|     @assign_to_user = User.find params[:sub_manager_id] rescue nil |          if @module_app.assign_sub_manager(@assign_to_user,current_user) | ||||||
|     unless @assign_to_user.nil? |             flash[:notice] = t('admin.app_auth.assigning_manager.add_sub_manager_ok') | ||||||
|        if @module_app.assign_sub_manager(@assign_to_user,current_user) |           else | ||||||
|           flash[:notice] = t('admin.app_auth.assign_success_sub_manager') |             flash[:notice] = t('admin.app_auth.assigning_manager.add_sub_manager_fail') | ||||||
|  |           end | ||||||
|         else |         else | ||||||
|           flash[:notice] = t('admin.app_auth.assign_fail_sub_manager') |           flash[:notice] = t('admin.app_auth.assigning_manager.failed_no_user') | ||||||
|         end |       end | ||||||
|       else |          redirect_to :action => "edit" | ||||||
|         flash[:notice] = t('admin.app_auth.assign_fail_sub_manager_no_user') |  | ||||||
|     end |  | ||||||
|        redirect_to :action => "edit" |  | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |    | ||||||
|   def assign_manager |   def assign_manager | ||||||
|     @module_app = ModuleApp.find(params[:id]) |  | ||||||
|     @assign_to_user = User.find params[:manager_id] rescue nil |  | ||||||
|     unless @assign_to_user.nil? |     unless @assign_to_user.nil? | ||||||
|        if @module_app.assign_manager(@assign_to_user,current_user) |        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 |         else | ||||||
|           flash[:notice] = t('admin.app_auth.assign_fail_manager') |           flash[:notice] = t('admin.app_auth.assigning_sub_manager.add_manager_fail') | ||||||
|         end |         end | ||||||
|       else |       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 |     end | ||||||
|        redirect_to :action => "edit" |        redirect_to :action => "edit" | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |    | ||||||
|   def remove_manager |   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) |     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 |     else | ||||||
|       flash[:notice] = t('admin.app_auth.delete_fail_manager') |       flash[:notice] = t('admin.app_auth.delete_manager.fail') | ||||||
|     end |     end | ||||||
|     redirect_to :action => "edit" |     redirect_to :action => "edit" | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |    | ||||||
|   def remove_sub_manager |   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)  |     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 |     else | ||||||
|       flash[:notice] = t('admin.app_auth.delete_fail_sub_manager') |       flash[:notice] = t('admin.app_auth.delete_sub_manager.fail') | ||||||
|     end |     end | ||||||
|     redirect_to :action => "edit" |     redirect_to :action => "edit" | ||||||
|   end |   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 | end | ||||||
|  | @ -0,0 +1,29 @@ | ||||||
|  | # encoding: utf-8  | ||||||
|  | namespace :user do | ||||||
|  |    | ||||||
|  |   task :build => :environment do | ||||||
|  |     User.all(conditions: {email: /nor/}).destroy_all | ||||||
|  |      | ||||||
|  |     username_list = %w{nor1 nor2 nor3 nor4 nor5 nor6 nor7} | ||||||
|  |     userfirstname_list_en = %w{ One Two Thre For Fiv Six Sen } | ||||||
|  |     userlastname_list_en = %w{ Aa Bb Cc Dd Ee Ff Gg } | ||||||
|  |      | ||||||
|  |     userfirstname_list_ct = %w{  一一 二二 三三 四四 五五 六六 七七 } | ||||||
|  |     userlastname_list_ct = %w{ 陳 林 吳 李 鄭 方 王 } | ||||||
|  |      | ||||||
|  |     first_name_field = AttributeField.first(conditions: {key: "first_name"}) | ||||||
|  |     last_name_field = AttributeField.first(conditions: {key: "last_name"}) | ||||||
|  |     major_field = AttributeField.first(conditions: {key: "major"}) | ||||||
|  |     department_field = AttributeField.first(conditions: {key: "department"}) | ||||||
|  |      | ||||||
|  |     stud_role = Role.first(conditions: {key: 'student'}) | ||||||
|  |      | ||||||
|  |     username_list.each_with_index  do |username,index| | ||||||
|  |       user = User.create( :email => "#{username}@rulingcom.com", :password => 'password', :password_confirmation => 'password', :admin => false ,:role_id => stud_role.id,:sub_role_ids => [stud_role.sub_roles[Random.rand(stud_role.sub_roles.count-1)].id]) | ||||||
|  |       AttributeValue.create( :user_id => user.id, :attribute_field_id => first_name_field.id, :key => 'first_name', :en => userfirstname_list_en[index], :zh_tw => userfirstname_list_ct[index] ) | ||||||
|  |       AttributeValue.create( :user_id => user.id, :attribute_field_id => last_name_field.id, :key => 'last_name', :en => userlastname_list_en[index], :zh_tw => userlastname_list_ct[index] ) | ||||||
|  |       AttributeValue.create( :user_id => user.id, :attribute_field_id => major_field.id, :key => 'major', :en => 'Information management', :zh_tw => '信息化管理' ) | ||||||
|  |       AttributeValue.create( :user_id => user.id, :attribute_field_id => department_field.id, :key => 'department', :en => 'Computer Science', :zh_tw => '計算機科學' ) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
		Loading…
	
		Reference in New Issue