Sha256: fdbc4813540613483548522efcc711ca41abccfe6b6389faecc55980faf06b10

Contents?: true

Size: 718 Bytes

Versions: 5

Compression:

Stored size: 718 Bytes

Contents

module Homeland::Note
  class Ability
    include CanCan::Ability

    attr_reader :user

    def initialize(u)
      @user = u
      if @user.blank?
        roles_for_anonymous
      elsif @user.roles?(:member)
        roles_for_members
      else
        roles_for_anonymous
      end
    end

    protected

    # 普通会员权限
    def roles_for_members
      can :create, Note
      can [:update, :destroy, :read], Note, user_id: user.id
      can :read, Note, publish: true
      basic_read_only
    end

    # 未登录用户权限
    def roles_for_anonymous
      cannot :manage, Note
      basic_read_only
    end

    def basic_read_only
      can :preview, Note
      can :read, Node
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
homeland-note-0.2.2 app/models/homeland/note/ability.rb
homeland-note-0.2.1 app/models/homeland/note/ability.rb
homeland-note-0.2.0 app/models/homeland/note/ability.rb
homeland-note-0.1.3 app/models/homeland/note/ability.rb
homeland-note-0.1.2 app/models/homeland/note/ability.rb