Quelyn
10 years agoGenius
Help with Freemarker & Menu Permissions
Hello! We have a menu to browse the sections of the community that different roles have access to. The way I have this setup is using if and elseif commands.
<li class=""><a href="/t5/Forums/ct-p/forums">Forums</a> <ul class="menu menu-flash-array"> <!-- Registered User Forum Menu --> <#if user_has_role == "reguser" > <li><a href="/t5/Forum1/bd-p/forum1">Forum 1</a></li> <!-- Customer Forum Menu --> <#elseif user_has_role == "customer" > <li><a href="/t5/Forum1/bd-p/forum1">Forum 1</a></li> <li><a href="/t5/Forum2/bd-p/forum2">Forum 2</a></li> <li><a href="/t5/Forum3/bd-p/forum3">Forum 3</a></li> <!-- Partner Forum Menu --> <#elseif user_has_role == "partner" > <li><a href="/t5/Forum1/bd-p/forum1">Forum 1</a></li> <li><a href="/t5/Forum2/bd-p/forum2">Forum 2</a></li> <li><a href="/t5/Forum3/bd-p/forum3">Forum 3</a></li> <li><a href="/t5/Forum4/bd-p/forum4">Forum 4</a></li> <!-- Employee Forum Menu --> <#elseif user_has_role == "employee" > <li><a href="/t5/Forum1/bd-p/forum1">Forum 1</a></li> <li><a href="/t5/Forum2/bd-p/forum2">Forum 2</a></li> <li><a href="/t5/Forum3/bd-p/forum3">Forum 3</a></li> <li><a href="/t5/Forum4/bd-p/forum4">Forum 4</a></li> <li><a href="/t5/Forum5/bd-p/forum5">Forum 5</a></li> <!-- Support Forum Menu --> <#elseif user_has_role?? && (user_has_role == "support" || user_has_role == "admin") > <li><a href="/t5/Forum1/bd-p/forum1">Forum 1</a></li> <li><a href="/t5/Forum2/bd-p/forum2">Forum 2</a></li> <li><a href="/t5/Forum3/bd-p/forum3">Forum 3</a></li> <li><a href="/t5/Forum4/bd-p/forum4">Forum 4</a></li> <li><a href="/t5/Forum5/bd-p/forum5">Forum 5</a></li> <li><a href="/t5/Forum6/bd-p/forum6">Forum 6</a></li> </#if> </ul>
What is happening is that we have some users with two roles. Employee AND Support. So, when they get to the point in the code where it assigns them "employee", it stops looking further and they see those menu items only.
I use Support as a role that's for access only, and they get their baseline defaults from Employee. This is the only place where this causes an issue. Is there a way to fix this in the freemarker code?
Any assistance is greatly appreciated!