1

Liferay UI からユーザーを削除しました。時々、非アクティブ化してから削除するように求められます。しばらくの間だけ無効にします。また、ユーザーは常にデータベースから移動するわけではありません。そのため、「メールアドレスが既に存在するか、ユーザー名が既に存在します」などのエラーがスローされるため、同じユーザーを再作成することはできません。

UI から削除した後、ユーザーが DB から削除されないのはなぜですか?

liferay-portal-6.1.1-ce-ga2 を使用しています。

この問題を解決するには?

4

3 に答える 3

12

DeactivateDeleteは 2 つの異なる機能です。

ユーザーがDeactivateデータベースに残り、のみがstatus非アクティブに変更されます。これはソフト削除または論理削除として知られています。つまり、非アクティブ化されたユーザーはログインできず、検索などにも表示されません。Activateユーザーを-ingします。そのため、ユーザーを再作成する必要がなく、ユーザーの履歴やアクションを保持するのにも役立ちます。

データベースからユーザーを削除する場合は、Control PanelUsers & Organizations→ をクリックSearch All Users→ 詳細検索または基本検索でユーザーを検索 → ユーザーを選択 → をクリックしDeactivateます。

この後、高度な検索を実行→ステータスを選択Inactive→非アクティブ化されたすべてのユーザーを検索→それらを選択して をクリックしますDelete

お役に立てれば。


編集

(以下のコメントでこれを指摘してくれた@hudolejevに感謝します)

trueでユーザーを削除するには、次のプロパティが に設定されていることにも注意してください。portal-ext.propertiesデフォルトではtrue:

#
# Set this to false if users cannot be deleted.
#
users.delete=true
于 2013-09-26T10:46:58.827 に答える
2

手動削除:

DB から直接削除する場合は、次のテーブルでユーザーに関連するすべてのレコードを削除してください。

DELETE FROM Users_UserGroups WHERE userId = 'userid';
DELETE FROM Users_Roles WHERE userId = 'userid';
DELETE FROM Users_Orgs WHERE userId = 'userid';
DELETE FROM Contact_ WHERE userId = 'userid';
DELETE FROM Group_ WHERE classPK = 'userid';
DELETE FROM User_ WHERE userId = 'userid';
于 2016-06-14T23:24:15.030 に答える
0

ユーザーを非アクティブ化しても、Liferay DBにはまだ存在するため、非アクティブ化するたびに、非アクティブ化されたユーザーを見つけて削除してください。

非アクティブ化後にユーザーが見つからない場合は、サーバー管理に移動して、すべての検索インデックスを再作成してください。してから再試行してください。

よろしくマニッシュ

于 2013-09-26T09:19:46.997 に答える