Sha256: f1eacd644b87a5f9bff031c0a197af18eced8e96688f6f80c1e56fdaccc7529d

Contents?: true

Size: 992 Bytes

Versions: 19

Compression:

Stored size: 992 Bytes

Contents

# frozen_string_literal: true

module Spree
  module PermissionSets
    # Full permissions for user management.
    #
    # This permission set grants full control over all user and
    # related resources, including:
    #
    # - Users
    # - Store credits
    # - Roles
    # - API keys
    class UserManagement < PermissionSets::Base
      def activate!
        can [:admin, :read, :create, :update, :save_in_address_book, :remove_from_address_book, :addresses, :orders, :items], Spree.user_class

        # Note: This does not work with accessible_by.
        # See https://github.com/solidusio/solidus/pull/1263
        can :update_email, Spree.user_class do |user|
          user.spree_roles.none?
        end
        can :update_password, Spree.user_class do |user|
          user.spree_roles.none?
        end

        cannot :destroy, Spree.user_class
        can :manage, Spree::StoreCredit
        can :manage, :api_key
        can :read, Spree::Role
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
solidus_core-4.3.6 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.5 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.6 lib/spree/permission_sets/user_management.rb
solidus_core-4.3.4 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.4 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.5 lib/spree/permission_sets/user_management.rb
solidus_core-4.3.3 lib/spree/permission_sets/user_management.rb
solidus_core-4.3.2 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.4 lib/spree/permission_sets/user_management.rb
solidus_core-4.3.1 lib/spree/permission_sets/user_management.rb
solidus_core-4.3.0 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.3 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.3 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.2 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.2 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.1 lib/spree/permission_sets/user_management.rb
solidus_core-4.2.0 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.1 lib/spree/permission_sets/user_management.rb
solidus_core-4.1.0 lib/spree/permission_sets/user_management.rb