是否可以定义一个只能在站点的某些页面中创建/读取/更新/删除 Web 内容的角色?例如,角色“NewsContent”只能将网页内容添加到新闻页面(及其子页面)。
到目前为止,我无法实现这一点,因为在向角色添加权限时我没有看到任何类似的东西。我可以将“添加 Web 内容”权限设置为角色,但使用此权限,具有此角色的用户将能够在站点的所有页面中添加 Web 内容。
我希望这是可行的,因为此功能对我的应用程序非常重要。提前致谢!
是否可以定义一个只能在站点的某些页面中创建/读取/更新/删除 Web 内容的角色?例如,角色“NewsContent”只能将网页内容添加到新闻页面(及其子页面)。
到目前为止,我无法实现这一点,因为在向角色添加权限时我没有看到任何类似的东西。我可以将“添加 Web 内容”权限设置为角色,但使用此权限,具有此角色的用户将能够在站点的所有页面中添加 Web 内容。
我希望这是可行的,因为此功能对我的应用程序非常重要。提前致谢!
您的应用程序中有 Portlet 吗?如果是这样,以下针对基于 JSF 的 portlet 的解决方案可能会有所帮助。
据我了解,“NewsContent”角色只能将网页内容添加到新闻页面。所以,我猜你有一个显示新闻页面的 Portlet。在这种情况下,从 Liferay DB 中获取用户的角色。
FacesContext context = FacesContext.getCurrentInstance();
javax.faces.context.ExternalContext externalContext = context.getExternalContext();
if(externalContext.isUserInRole("NewsContent"))
{
//Allow this user to do what you want him to do
}
如果您不使用基于 JSF 的 Portlet,您仍然可以查询 Liferay DB并通过查询 in 和表来获取登录用户的USER_
角色。USERS_ROLES
ROLE_
进入控制面板=>角色
选择您分配给用户的特定角色 选择为该角色定义权限 选择站点管理 仅启用站点中的管理页面复选框 现在具有该特定角色的用户能够在页面上发布 Web 内容。
这将解决您的问题。