我正在Liferay 7上构建一个站点。默认情况下,所有经过身份验证的用户都会继承Guest权限(匿名用户)。
权限部分甚至还有一个标签:
"在当前配置下,所有用户都自动从Guest角色继承权限。"
为什么我需要这个?
我想仅为匿名用户显示X内容,当用户登录时,我想显示不同的内容。
这是我对匿名用户的内容权限的配置方式:
答案 0 :(得分:2)
为什么我需要这个?
权限不是显示不同内容的全部内容。如果客人不允许看到某些内容,但需要登录 - 那没关系。它是经过身份验证的内容,您需要登录。
如果经过身份验证的用户具有没有权限才能看到某些内容,但只是需要注销才能看到它:什么样的许可是吗?让我回答你:这不是许可。它更像是目标内容,而可能会模仿权限,这种模仿只不过是模仿。
实现此类要求的一种方法是通过结构化Web内容(您听起来好像要显示不同的Web内容文章)。该模板可以访问完整的API,并可以检查当前用户是否已登录 - 并根据此事实显示不同的内容。
答案 1 :(得分:1)
虽然我同意那些说这不是最佳途径的人,但是你可以这样做 - 只是为了解决手头的问题。
Set this to true if resources should assume that all users have the Guest role. Set this to false if resources will not assume that all users have the Guest role and, thus, do not automatically inherit permissions that belong to the Guest role.
Setting this property to false may require users to grant permissions to roles like Site Member and User.
Defaults:
permissions.check.guest.enabled=true
答案 2 :(得分:1)
如果您想使用ResourcePermissionLocalServiceUtil.setResourcePermissions(companyId,
DLFileEntry.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL,
String.valueOf(dlFileEntry.getFileEntryId()), guestRole.getRoleId(),
new String[] { ActionKeys.VIEW });
类中的代码级别来实现角色权限。您可以使用以下代码来获取访客用户的权限。
如果文档和媒体允许使用rest webservice在Liferay 7中访客和registerUser的许可,您可以使用此代码允许使用此代码上传和下载文档。
{{1}}
答案 3 :(得分:0)
要回答您的问题 - 您无法根据特定资产配置 !默认情况下,经过身份验证的用户的权限不会低于未经身份验证的用户。您可以使用permissions.check.guest.enabled=false
更改 所有资产 的行为,正确指出@Victor!