# File lib/acts_as_filterable.rb, line 115
        def visible?
          return true if Thread.current[:eval_access_control] == false
          return true if !self.class.read_inheritable_attribute(:acts_as_filterable)
          rules =  self.class.read_inheritable_attribute(:visibility_perms) || []
          return true if !rules.any?
          
          visible = self.class.read_inheritable_attribute(:visibility_default) || false
          rules.each do |permission, rule, opts|
          
            Thread.current[:eval_access_control] = false
            result = self.send(rule)
            Thread.current[:eval_access_control] = true
            
            if result && opts[:always]
              return permission == :visible
            end
            
            if permission == :visible
              visible = true if result
            elsif permission == :invisible
              visible = false if result
            else
              raise "Bad permission"
            end
          end
          return visible
        end