Sha256: e63c876da0bd1aed82204064d464c1dd7adbfc25103bcb4917f5cadad0058f6a

Contents?: true

Size: 838 Bytes

Versions: 11

Compression:

Stored size: 838 Bytes

Contents

require 'rails-canhaz/extensions_subject'
require 'rails-canhaz/extensions_object'
require 'rails-canhaz/extensions_all'

module CanHaz
  module ModelExtensions
    def self.included(base)
      base.send(:extend, ClassMethods)
      base.send(:include, CanHaz::ModelExtensions::All)
    end
  end

  module ClassMethods

    ##
    # Marks the current model as a canhaz object for authorizations
    #
    def acts_as_canhaz_object
      include CanHaz::ModelExtensions::Object
      before_destroy :not_accessible # Removes permission before deleting the object
    end

    ##
    # Marks the current model as a canhaz subject for authorizations
    #
    def acts_as_canhaz_subject
      include CanHaz::ModelExtensions::Subject
      before_destroy :can_do_nothing # Removes permission before deleting the subject
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rails-canhaz-1.0.7 lib/rails-canhaz/model_extensions.rb
rails-canhaz-2.0.0.pre1 lib/rails-canhaz/model_extensions.rb
rails-canhaz-2.0.0.pre lib/rails-canhaz/model_extensions.rb
rails-canhaz-1.0.6 lib/rails-canhaz/model_extensions.rb
rails-canhaz-1.0.5 lib/rails-canhaz/model_extensions.rb
rails-canhaz-1.0.4 lib/rails-canhaz/model_extensions.rb
rails-canhaz-1.0.1 lib/rails-canhaz/model_extensions.rb
rails-canhaz-1.0.0 lib/rails-canhaz/model_extensions.rb
rails-canhaz-0.4.1 lib/rails-canhaz/model_extensions.rb
rails-canhaz-0.4.0 lib/rails-canhaz/model_extensions.rb
rails-canhaz-0.3.0 lib/rails-canhaz/model_extensions.rb