Как дать разрешения на создание только роли пользователя для менеджера в Spree?

В настоящее время у меня есть две роли по умолчанию: «Пользователь» и «Администратор».

И я добавил новую роль под названием «Менеджер» с разрешениями на управление заказами, пользователями

class ManagerAbility
  include CanCan::Ability

  def initialize user
    if user.has_spree_role?(:manager)
      can :manage, Spree::Order
      can :manage, Spree::User
    end
  end
end

Если менеджер вошел в систему, он может управлять заказами и пользователями, а также создавать новых пользователей с ролью администратора. Но мне нужна возможность создавать только «Пользователя», а не «Администратора» или другие роли «Менеджера».

Использование spree_auth_devise — 2-2-стабильный

Я ценю, если кто-нибудь может мне помочь. Спасибо.


person user3724719    schedule 10.06.2014    source источник


Ответы (1)


Это не то, что в настоящее время поддерживается Spree из коробки.

Вам придется изменить UsersController, чтобы добавить это ограничение. В настоящее время он не поддерживает никаких ограничений на роли. Вам нужно будет изменить (как минимум) функции создания и обновления, чтобы установить проверку, чтобы увидеть, разрешено ли вошедшему в систему пользователю создавать/обновлять пользователя для новой выбранной роли.

person gmacdougall    schedule 12.06.2014