Sha256: d1d154e164527ee68752cc4fff1afadaab6609ebc5db80909459e5c32f7a0ff2

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

module SocialStream
  class Ability
    include CanCan::Ability

    def initialize(user)
      (SocialStream.objects - [ :actor ]).map{ |obj|
        obj.to_s.classify.constantize
      }.each do |klass|
        can :create, klass do |k|
          k._activity_tie.allows?(user, 'create', 'activity')
        end

        can :read, klass do |k|
          k._activity_tie.allows?(user, 'read', 'activity')
        end

        can :update, klass do |k|
          k._activity_tie.allows?(user, 'update', 'activity')
        end

        can :destroy, klass do |k|
          k._activity_tie.allows?(user, 'destroy', 'activity')
        end
      end

      can :create, Activity do |a|
        a.tie.allows?(user, 'create', 'activity')
      end

      can :read, Activity do |a|
        a.tie.allows?(user, 'read', 'activity')
      end

      can :update, Activity do |a|
        a.tie.allows?(user, 'update', 'activity')
      end

      can :destroy, Activity do |a|
        a.tie.allows?(user, 'destroy', 'activity')
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
social_stream-0.4.1 lib/social_stream/ability.rb
social_stream-0.4.0 lib/social_stream/ability.rb