Forum Discussion
sateesh999
You can use below code
<#if !user.anonymous>
<#-- component code goes here -->
</#if>
or
<#if user.id != -1>
<#-- component code goes here -->
</#if>
- sateesh9997 years agoContributor
Hi Vikas,
Thanks for your reply!,
I have created two custom components:
<component id="common.widget.custom-content" name="13"/>
<component id="common.widget.custom-content" name="14"/>
13-Managers and 14- Users.
If Managers logged-in then, the both custom components should be visible and If user's logged-in then only one user's component should be visible.
I want to restrict 13- (custom component) for users? How can I do this?
I tried to add your code in wrapper--> Page head top content.
<#if !user.anonymous>
<component id="common.widget.custom-content" name="13"/>
</#if>The above given code is not working.
And please provide me a clear code.
Thanks,
Sateesh.
- StanGromer7 years agoBoss
sateesh999 are your users who are logged in part of a role? If you have multiple personas, you may want to go off role rather than logged in/logged out (else a combo may be needed). Example:
<#attempt>
<#assign user_has_role = false />
<#if user.registered >
<#list restadmin("/users/id/${user.id?c}/roles").roles.role as role>
<#if role.name?? && (role.name == "Customers" || role.name == "Administrator" || role.name == "Banana")>
<#assign user_has_role = true />
</#if>
</#list>
</#if>
<#if user_has_role >CONTENT IF IN THE ROLE SHOWN HERE
<#else>
CONTENT IF NOT IN ROLE SHOWN HERE
</#if>
<#recover>
<!-- Something bad happened -->
</#attempt>- rnewell4 years agoMentor
Hey StanGromer can i leverage <#elseif> for another role.name and<#if user_has_role > display this content. ?
In theory, I'd like to Display role-based links to boards for role A. Display the same links, however, if I have a role B, display 1 more link. While displaying the same content, if I have role 3, display 1 more link or a different set of links.
Any ideas around the code you already have implemented for numerous roles under the same component?
- SuzieH4 years agoKhoros Alumni (Retired)
Hi sateesh999
To call a component from another component, you'll need something like this using the @component FreeMarker directive
<#if !user.anonymous> <@component id="common.widget.custom-content" name="13"/> </#if>
The @component directive also takes parameters, which you could pass to and use in the custom component you're calling.
Other helpful directives might be @override and @delegate.
Here are a few dev guides to take a look at:
Pass parameters to a custom component