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 |