Sha256: fc8a23965de27c0138cefbc1dc2b11204685047e16c91e1b783d404497057262

Contents?: true

Size: 1.27 KB

Versions: 9

Compression:

Stored size: 1.27 KB

Contents

module Spree
  module UserRoles
    extend ActiveSupport::Concern

    included do
      has_many :role_users, class_name: 'Spree::RoleUser', foreign_key: :user_id, dependent: :destroy
      has_many :spree_roles, through: :role_users, class_name: 'Spree::Role', source: :role

      scope :spree_admin, -> { joins(:spree_roles).where(Spree::Role.table_name => { name: 'admin' }) }

      # has_spree_role? simply needs to return true or false whether a user has a role or not.
      def has_spree_role?(role_name)
        spree_roles.exists?(name: role_name)
      end

      def self.admin
        Spree::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')

        spree_admin
      end

      def self.admin_created?
        Spree::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')

        spree_admin_created?
      end

      def admin?
        Spree::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')

        spree_admin?
      end

      def self.spree_admin_created?
        spree_admin.exists?
      end

      def spree_admin?
        has_spree_role?('admin')
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/models/concerns/spree/user_roles.rb
spree_core-4.10.0 app/models/concerns/spree/user_roles.rb
spree_core-4.9.0 app/models/concerns/spree/user_roles.rb
spree_core-4.8.3 app/models/concerns/spree/user_roles.rb
spree_core-4.8.2 app/models/concerns/spree/user_roles.rb
spree_core-4.7.3 app/models/concerns/spree/user_roles.rb
spree_core-4.7.2 app/models/concerns/spree/user_roles.rb
spree_core-4.7.1 app/models/concerns/spree/user_roles.rb
spree_core-4.7.0 app/models/concerns/spree/user_roles.rb