Rails 4 - Rolify с датой обновления для роли

Я пытаюсь настроить роли в своем приложении rails с помощью Rolify.

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

Есть ли способ разрешить пользователям, которым разрешено назначать роли, указывать дату продления, к которой они должны подтвердить, что пользователь продолжает выполнять эту роль?

На данный момент в моей таблице ролей есть только ассоциации с ресурсом и пользователем, а также строковый атрибут с именем :name (для имени роли).

Могу ли я добавить логическое значение для true/false, указывающее, есть ли у роли дата истечения срока действия, и если да, то когда следует выпустить уведомление о продлении?

Есть ли лучший способ сделать это?


person Mel    schedule 07.08.2016    source источник


Ответы (1)


Это может быть хорошей идеей:

  1. Создайте таблицу для ролей и разрешений.
  2. добавьте поле has_expired в эту таблицу.
  3. При сохранении разрешения установите срок действия.
  4. Когда пользователь входит в систему, проверяется дата истечения срока действия.
  5. Затем установите для has_expired значение true
  6. Если вы используете драгоценный камень канканкан, то в модели Ability.rb:

    if user.role.has_expired? cannot :manage, Role end

Надеюсь, это поможет

person Pradeep Sapkota    schedule 07.08.2016
comment
@Pradeep_Sapkota - спасибо. Я использую pundit для авторизации. Вы имеете в виду, что я добавляю поле has_expired в таблицу ролей? Затем я мог бы использовать Pundit, чтобы исключить всех, чья роль истекла. В этом случае я должен добавить поле даты в таблицу ролей, чтобы установить дату истечения срока действия. - person Mel; 07.08.2016
comment
Извините, я использую devise с канканом и ничего не знаю о pundit. - person Pradeep Sapkota; 07.08.2016