Не в состоянии ограничить пользователя в назначении роли - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над приложением rails, где у меня есть пользователи.Роль - это еще один стол, где у меня есть админ / игрок.Мы реализовали has_many through связь между моделью ролей и моделью пользователей.

Каждый пользователь может быть игроком, администратором или и тем, и другим.Только пользователь с ролью администратора может назначать роли другим пользователям.

Поэтому моя проблема в том, что я не могу ограничить пользователя в зависимости от его роли.Я использовал cancancan самоцвет для авторизации.Я пытался создать правильные способности, но теперь все пользователи могут назначать себе роли, которые я не хочу.Я хочу, чтобы только пользователь с ролью администратора мог назначать роли и выполнять все операции.Все остальные пользователи должны иметь возможность удалять / обновлять только свои данные.Я обнаружил, что «если user.admin?» Этот код не работает должным образом.если я дам elsif user.player?это дает ошибку неопределенным методом.

class Ability
  include CanCan::Ability

   def initialize(user)
     if user.admin?
       can :manage, :all
     else
       can :update, User, id: user.id
       can :destroy, User , id: user.id
     end
   end
end

Я тоже пытался использовать следующий код

class Ability
  include CanCan::Ability

  def initialize(user)
  if user.Role.name.admin?
    can :manage, :all
  elsif user.Role.name.player?
    can :update,User, id: user.id
    can :destroy,User , id: user.id
  end
  end

  end

Please help me with proper guidance. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...