73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
|  | module OrbitApp | ||
|  |   module ModuleAppMembershipTools | ||
|  |       def is_manager?(user) | ||
|  |         if user.nil? | ||
|  |           return false | ||
|  |         else | ||
|  |           m_users = managing_users | ||
|  |           if m_users.blank? | ||
|  |             false | ||
|  |           else | ||
|  |             m_users.include?(user)   | ||
|  |           end | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       def is_sub_manager?(user) | ||
|  |         if user.nil? | ||
|  |           return false | ||
|  |         else # when user is guest | ||
|  |           s_m_users = sub_managing_users | ||
|  |           result = false | ||
|  |           if s_m_users.blank? | ||
|  |             result = false | ||
|  |           else | ||
|  |             result = s_m_users.include?(user)  | ||
|  |           end | ||
|  |           result || is_manager?(user) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       def managing_users | ||
|  |         self.managers.collect{ |t| t.user } | ||
|  |       end | ||
|  |        | ||
|  |       def sub_managing_users | ||
|  |         self.sub_managers.collect{ |t| t.user } | ||
|  |       end | ||
|  |        | ||
|  |       def assign_manager(user,assigner) | ||
|  |         manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil     | ||
|  |         if manager.nil?  | ||
|  |           manager = self.managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil)) | ||
|  |         end | ||
|  |         manager | ||
|  |       end | ||
|  |        | ||
|  |       def assign_sub_manager(user,assigner) | ||
|  |         submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil | ||
|  |         if submanager.nil? && !self.managing_users.include?(user) | ||
|  |           submanager = self.sub_managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil) ) | ||
|  |         end | ||
|  |         submanager | ||
|  |       end | ||
|  |        | ||
|  |       def remove_manager(user) | ||
|  |         manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil | ||
|  |         if manager | ||
|  |           manager.destroy | ||
|  |         else | ||
|  |           false | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       def remove_sub_manager(user) | ||
|  |         submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil | ||
|  |         if submanager | ||
|  |           submanager.destroy | ||
|  |         else | ||
|  |           false | ||
|  |         end | ||
|  |       end | ||
|  |   end | ||
|  | end |