Sha256: fde307301ee5b274fa2dad2ad08472c8924a0a25fe6b2947d25283f1807b2a84

Contents?: true

Size: 669 Bytes

Versions: 4

Compression:

Stored size: 669 Bytes

Contents

# frozen_string_literal: true

module Homeland::Site
  class Ability
    include CanCan::Ability

    attr_reader :user

    def initialize(u)
      @user = u
      if @user.blank?
        roles_for_anonymous
      elsif user.roles?(:site_editor)
        can :create, ::Site
      else
        roles_for_anonymous
      end
    end

    protected

      # 普通会员权限
      def roles_for_site_editors
        can :create, ::Site
        basic_read_only
      end

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

      def basic_read_only
        can :read, ::Site
      end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
homeland-site-0.3.3 app/models/homeland/site/ability.rb
homeland-site-0.3.2 app/models/homeland/site/ability.rb
homeland-site-0.3.1 app/models/homeland/site/ability.rb
homeland-site-0.3.0 app/models/homeland/site/ability.rb