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 |