- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Acts as hidden lets you hide active record objects. Hidden objects don't show up in AR find operations but can be fetched with modified find queries. It also sets a passphrase hash that you can use to construct private urls for these items
License
unamashana/acts-as-hidden
Folders and files
| Name | Name | Last commit message  | Last commit date  | |
|---|---|---|---|---|
Repository files navigation
ActsAsHidden
============
A plugin to help you make an Active Record object invisible. Invisible items don't show up in find operations but can be fetched by passing a :with_hidden=>true key. They also contain a passphrase field 
that can be used to make public urls for hidden items on your website. 
Tested upto Rails 2.2.2
Requirements
============
If you want to make the model Foo invisible, you need to put the following in the class definition
class Foo < ActiveRecord::Base
  
   .....
   acts_as_hidden
   ....
end
You also need to add the following fields to your Foos table (with a migration)
  add_column  :foo,       :visible,     :boolean, :default => true
  add_column  :foo,       :passphrase,  :string,  :limit => 40
Example
=======
Hiding and finding Objects:
---------------------------
To make an instance of Foo invisible, you need to call set_invisible on it.
  @foo = Foo.find(id)
  # Make it invisible
  @foo.set_invisible
Searching for foo with id will now return nothing
  @foo = Foo.find(id) # => nil
To find foo, you need to 
  @foo = Foo.find_any(id) # => returns foo with id back
To do regular find(:all,:condtions=>"blah") kind of searches, you need to pass :with_hidden key
  Foo.find(:all,:conditions=>'blah', :with_hidden=>true)
You can create public urls like /foo/show?p=12313jmnk90890hasdh and see if params[:p] matches with @foo.passphrase
UnHiding Objects
----------------
To make foo visible again
  @foo.set_visible
Hiding Associations after hiding parent
---------------------------------------
To do some post processing after hiding/unhiding, just implement these two callbacks. Remeber, its just optional
class Foo < ActiveRecord::Base
  ...
  # Plugin calls this after hiding this instance
  def after_hiding
    # Do whatever you want, you can hide association, delete feeds, remove this item from search index .. whatever
  end
  def after_unhiding
    # Unhide children, put back in search index etc .. whatever you want
  end
  ...
end
More detailed help and test cases coming soon
Credits
=======
Thanks to Acts as Paranoid (http://ar-paranoid.rubyforge.org/) for providing inspiration for this plugin
Copyright (c) 2008 [[email protected]], released under the MIT license
About
Acts as hidden lets you hide active record objects. Hidden objects don't show up in AR find operations but can be fetched with modified find queries. It also sets a passphrase hash that you can use to construct private urls for these items
Resources
License
Stars
Watchers
Forks
Releases
No releases published
              Packages 0
        No packages published