Liferay 6.2 CE 管理员无法访问停靠栏或控制面板

Liferay 6.2 CE admin cannot access the dockbar or the control panel

运行 Tomcat 8.0.20 上的 Liferay 6.2 CE,在两个不同的环境中。

在一个环境中,当以管理员身份登录时,停靠栏最近不再出现在我的 Liferay 门户的顶部。此外,尝试使用 URL 直接访问 Liferay 控制面板会将我带到 "not found" 页面。

我想知道这是否可能是用户管理问题,原因如下:

我发现以管理员身份登录时,$permissionChecker.isOmniadmin() returns "false",这对我来说看起来不正常(但也许我错了?) .

请问有办法解决这个问题吗?

编辑 2018/09/07:我还在 Liferay 社区论坛中 post 编辑了 post 的更新版本。抱歉交叉 posting - 这些是我在 Stack Overflow 上的第一步,从现在开始我会更加谨慎。

https://community.liferay.com/forums/-/message_boards/message/110891530

仅仅是管理员并没有资格成为 OmniAdmin。有一个配置,可以将任何用户提升为 OmniAdmin,这样即使您将自己锁在门外,您也可以获得访问权限,例如没有人知道管理员帐户。

来自portal.properties

Omniadmin users can administer the portal's core functionality: gc, shutdown, etc. Omniadmin users must belong to the default company.

Multiple portal instances might be deployed on one application server, but not all of the administrators should have access to this core functionality. Input the ids of users who are omniadmin users.

Leave this field blank if users who belong to the right company and have the Administrator role are allowed to administer the portal's core functionality. Defaults:

omniadmin.users=

使用此后门自然需要访问文件系统(例如,您需要编辑 portal-ext.properties)并重新启动。

回到你的问题:你的主题似乎做出了错误的假设,你应该为当前用户作为管理员角色的成员测试权限检查器

这是一个数据问题。通过查询数据库中的 Users_Roles tables,我发现由于某些不明原因, "admin" 用户实际上只有 "User" 角色,缺少 "Administrator" 和 "Power user" 它应该有的角色。在没有任何其他 "Administrator" 用户帐户的情况下,我以一种不推荐的方式纠正了该异常 - 通过将缺失的角色插入 Users_Roles table(当然,应用程序服务器暂时关闭)。到目前为止,一切似乎都恢复正常了,所以我想这也算解决了。