Sha256: 7227eed6f48cad98f9f372aff8093731447f3bf7730a046c383d827678127d28

Contents?: true

Size: 633 Bytes

Versions: 4

Compression:

Stored size: 633 Bytes

Contents

module SocialStream
  class Ability
    include CanCan::Ability

    def initialize(user)
      can :create, Activity do |a|
        # All ties authors must the user
        a.tie.sender_subject == user &&
          a.tie.permission?(user, 'create', 'activity')
      end

      can :read, Activity do |a|
        a.tie.relation.name == 'public' ||
          a.tie.permission?(user, 'read', 'activity')
      end

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

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
social_stream-0.2.3 lib/social_stream/ability.rb
social_stream-0.2.2 lib/social_stream/ability.rb
social_stream-0.2.1 lib/social_stream/ability.rb
social_stream-0.2.0 lib/social_stream/ability.rb