我想为已登录的用户隐藏内置的“登录”portlet。
如何设置权限来实现此目的?
答案 0 :(得分:3)
Liferay使用RBAC权限模型,这可能不允许您通过权限实现此目的。这是因为从授予访客权限中删除系统角色是完全不合逻辑的。
从头脑中考虑其他一些选择:
答案 1 :(得分:2)
实现此目的的另一种方法是创建一个包含Login portlet的公共页面,假设该页面名为Login(此页面和guest虚拟机应该可以查看它)。
接下来,创建另一个页面并调用此欢迎。在其上放置一些portlet以供登录用户查看。该页面最好应该是私有的,但如果它是公共的,请确保您更改权限,以便访客无法看到portlet等。
现在转到控制面板>门户>门户网站设置和修改导航链接(将鼠标悬停在问号图标上,以获取信息工具提示,说明每个链接的作用)。
以下是一个示例,继续我上面提到的登录和欢迎页面:
Simples!没有代码修改或自定义主题!
答案 2 :(得分:0)
Liferay将已登录的类添加到您的<body>
元素中。如果您可以使用HTML格式,但只是未显示,请添加
.signed-in .portlet_login {
display:none;
}
或类似于您的主题或login-portlet的外观和感觉高级样式。
答案 3 :(得分:0)
您可以根据$is_signed_in
签入Theme VM files
呈现/不呈现多项内容。
is_signed_in
将为true
,否则为false
。
以下是portal_vm.vm
#if(!$is_signed_in)
<a href="$sign_in_url" id="sign-in" rel="nofollow">$sign_in_text</a>
#end
#if($is_signed_in)
#if($permissionChecker.isOmniadmin()== true)
#dockbar()
#end
#if(!$is_signed_in)
$theme.include($themeServletContext, "/jsp/someJsp.jsp")
#end