Разработайте проблемы с мягко удаленными записями. Есть идеи, как это исправить? - PullRequest
1 голос
/ 29 мая 2019

Я использую сбросить камень для удаления Soft . Как только пользователь получает Soft-Deleted, он все равно может получать письма с забытым паролем. Потому что Devise Password Controller не заботится ни о его софт-удалении, ни о нет?

Я использую следующие модули Devise, возможно, мне нужно исправить все модули: -

  • : confirmable,
  • : восстанавливаемый,
  • : расписание,
  • : отслеживаются
  • : запирающийся
  • : * 1020 его подлинности *

Хотя я могу исправить проблему входа с помощью authenticatable, переопределив метод find_for_authentication в пользовательской модели, но, похоже, он не работает с другими модулями Devise.

Есть идеи, как я могу исправить проблемы софт-удаления с помощью Devise?

Я использую devise (4.6.2), сброс (1.0.0), Rails 5.1.6.2

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Наконец я могу это исправить, переопределив следующий метод в user.rb. любой другой, если сталкивается с той же проблемой, может исправить это следующим образом:

# Override to add condition to ignore soft deleted users
def self.find_first_by_auth_conditions(conditions, opts = {})
  opts.reverse_merge!(discarded_at: nil)

  super
 end
0 голосов
/ 29 мая 2019

Вы можете использовать область по умолчанию, например:

class User
  ...
  default_scope -> { kept }
  ...
end

Другие области сброса, такие как Discarded и with_discarded, должны продолжать работать, поскольку они работают с одним и тем же столбцом (discard_column), поэтому они будут переопределять область по умолчанию.Таким образом, нет необходимости переопределять любой из разработанных методов

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