【问题标题】:Remove VIEW permission automatically from Guest Role when a site-page is added添加站点页面时自动从访客角色中删除查看权限
【发布时间】:2013-04-18 16:23:05
【问题描述】:

在 Liferay 中,当页面被添加到站点时,默认情况下它会为访客角色授予 VIEW 权限。

是否有任何方法(通过配置或通过钩子或其他方式)禁用此功能,以便在将新页面添加到站点时默认禁用访客角色的 VIEW 权限?

【问题讨论】:

  • 好吧,当 page[Layout-in Liferay low level context] 被添加为 Public page 时,Liferay 为 Layout 模型分配了在 sites.xml 中定义的默认猜测权限。基本上有两种方法可以通过 ext development.1.remove guest default permissions from sites.xml 2.change code in LayoutLocalServiceImpl in ext 通过覆盖 addLayout 方法,通过将 addGroupPermissions 布尔值设置为 false 来避免它。

标签: configuration liferay liferay-6 administration


【解决方案1】:

好吧,当页面[Layout-in Liferay low level context]被添加为Public页面时,Liferay将默认权限分配给sites.xml中为布局模型定义的GUEST角色。

通过ext开发基本上有两种方法可以避免:

  1. sites.xml 中删除访客默认权限
  2. 通过将addGroupPermissions 布尔值设置为false 来覆盖addLayout 方法,从而在ext 中更改LayoutLocalServiceImpl 中的代码。

【讨论】:

  • 现在的要求是如何从已经分配了访客角色查看权限的页面中动态删除访客角色。我的意思是有没有办法从所有已创建的页面中删除以前分配的访客角色的查看权限,而不是从管理权限选项卡中手动删除访客角色的查看权限。
  • 嗯。为此,您可以编写一些实用程序 portlet 来获取所有公共页面并使用 ResourcePermissionServiceUtil.removeResourcePermission ,您可以删除访客角色的查看权限。
【解决方案2】:

有一些方法(通过 liferay 配置和 Ext),您可以限制那些没有明确拥有该权限的用户查看站点公共页面。

第一种方法

所以这可以通过在portal-ext.properties中将此属性设置为false来实现:

permissions.check.guest.enabled=false

但是通过设置此属性,将会发生的情况是,访客角色仅对未登录的用户有意义,一旦用户登录,即使访客对页面或资产有 VIEW 权限,用户除非用户具有该权限,否则将无法查看它。

因此,即使您将所有权限授予来宾角色,来宾角色也会完全无用。

对于尚未登录的用户,您可以通过一些逻辑将他们发送到登录页面。

第二种方法

1) 更新 EXT-plugin 中的 site.xml 以在添加站点页面时禁用访客的默认 VIEW 权限。

通过在添加站点页面时这样做,默认情况下访客角色的查看权限未选中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 2020-10-16
    • 1970-01-01
    • 2010-11-01
    • 2022-11-16
    • 2019-08-21
    • 2021-11-16
    • 2016-04-01
    相关资源
    最近更新 更多