2015-04-11 2 views
1

Я должен заморозить или заблокировать внешнего пользователя на основе пользовательской логики. Как только пользовательское логическое условие устанавливает значение true, мне нужно заморозить или заблокировать этого пользователя, чтобы пользователь не мог войти в систему, пока администратор не разморозит или не разблокирует этого внешнего пользователя.Внешняя пользовательская реализация Замедление или блокировка

Я пробовал с полем API isPasswordlockout, но я получил ошибку, так как «Поле не перезаписывается», поэтому я попытался с параметром «замораживание», но с тех пор, как пользователь уже выполнил вход и код вершины Salesforce или триггер запускается у этого пользователя режиме, я получил ошибку «МОЖЕТ БЕСПЛАТНО БЕСПЛАТНО» самозамороженное не разрешено.

Мое требование состоит в том, чтобы заблокировать или заморозить этого пользователя, когда он выполняет какое-либо действие, и на основе моей логики пользователь должен быть заблокирован или заморожен. Кроме того, я не могу использовать метод site.login для 3 недопустимых попыток. Таким образом, этот вариант отделен от того, что все возможно?

Я пробовал использовать метод system.runas, но это работает только в случае тестового метода.

Любое предложение ??

ответ

0

Я предполагаю, что вы пробовали установку UserLogin. Заморожены, когда вы получили сообщение «CAN NOT SELF FREEZE».

Вы можете попытаться найти способ переключения пользователя транзакции. Некоторые варианты:

  1. Использовать будущий или пакетный метод. Это может столкнуться с той же проблемой, когда пользователь транзакции является пользователем, которого вы пытаетесь заморозить.
  2. Добавьте запись пользователя в очередь, которая будет заморожена запланированным/пакетным заданием.
  3. Используйте API для выполнения замораживания как другого пользователя. См. Freezing Users from Visualforce
+0

Чтобы переключиться на другого пользователя транзакции, мне нужно запустить этот код с помощью другого пользователя, которого я не могу сделать, потому что метод runas работает только в тестовом классе. Во-вторых, я попытался использовать будущий метод, но та же проблема, с которой мне не удалась. Во-вторых, я не могу использовать расписание для работы, потому что на основе моей пользовательской логики пользователь должен быть немедленно отключен или заблокирован. Поскольку работа по расписанию будет выполняться в определенное время, поэтому это невозможно для моего требования. С помощью инструментария ajax также, когда моя страница выполняется, я думаю, что я столкнусь с той же проблемой, что и пользователь транзакции. – ad01012

+0

Это уродливо, но вы можете безопасно хранить токен обновления или имя пользователя/пароль для другого пользователя. Используя эти сохраненные учетные данные, вы можете вызвать API для выполнения операции блокировки. –

Смежные вопросы