Не удалось удалить цели согласия

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

Я уже удалил всех пользователей из базы, но когда я печатаю все согласия с помощью REST API, появляется реестр пользователя (но база данных пуста).

Как я могу удалить запись пользователя, которая больше не существует в базе данных, но все еще связана с согласием? Как я могу очистить все данные, связанные с согласиями? Как я могу отозвать все согласия? Я что-то пропустил?

WSO2 IS v5.10.0 Документ WSO2 — https://docs.wso2.com/display/IS590/apidocs/Consent-management-apis/index.html#!/operations#Consent#consentsGet

Я пытался решить эту проблему с помощью WSO2 REST API, но безуспешно. Когда я пытаюсь удалить цель с помощью WSO2 REST API — {"код":"CM_00079","сообщение":"Неверный запрос","описание":"Идентификатор цели: 29 связан с одной или несколькими квитанциями" ."}

1 ответ

Здесь вам пришлось столкнуться с этой проблемой из-за удаления пользователей непосредственно из базы данных/хранилища пользователей. Не рекомендуется удалять пользователей непосредственно из базы данных. Если вы используете REST API/SOAP API для удаления пользователей, в дополнение к очистке пользовательских данных из пользовательского хранилища, он будет вызывать различные предварительные/пост-прослушиватели удаления пользователей и очищать другие ассоциации/привязки к удаляющему пользователю, которые хранятся в разные таблицы/разные БД. Очистка данных получателя согласия — это такой случай, и есть много других (например, удаление пользователя из назначенных ролей).

Поскольку вы удалили пользователя непосредственно из БД, согласие, связанное с удаленным пользователем, не было очищено. Чтобы удалить данные о согласии пользователя, очистите записи в следующих таблицах, хранящихся в базе данных Identity DB, в том же порядке (из-за ограничений внешнего ключа):

  1. CM_SP_PURPOSE_PURPOSE_CAT_ASSC
  2. CM_SP_PURPOSE_PII_CAT_ASSOC
  3. CM_SP_PURPOSE_ASSOC
  4. CM_RECEIPT_SP_ASSOC
  5. CM_RECEIPT

Затем попробуйте запрос REST API, чтобы удалить цель согласия.

Другие вопросы по тегам