1

我已经从 Liferay UI 中删除了用户。有时它要求停用然后删除。有一段时间才停用。并且用户并不总是来自 db。因此,无法重新创建同一用户,因为它会引发诸如“电子邮件地址已存在或用户名已存在”之类的错误。

为什么从 UI 删除后用户没有从数据库中删除?

我正在使用 liferay-portal-6.1.1-ce-ga2。

如何解决这个问题?

4

3 回答 3

12

Deactivate并且Delete是两个不同的功能。

当您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

手动删除:

如果要直接从数据库中删除,请确保删除下一个表中与用户相关的所有记录:

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 回答