Search code examples
xmlodooodoo-11odoo-website

Odoo- Hide website menu when no user is logged in and vice versa


I am working on the menu of the Odoo website module, but I am stuck at hiding a specific menu when the user is logged out and if any user is logged in it should display.

I am writing a sample to display how I created the menu-

<odoo>
 <data noupdate="0">
   <record id="furdo_portal_sale_order_menu" model="website.menu">
     <field name="name">Sale Orders</field>
     <field name="url">/my/orders</field>
     <field name="sequence" type="int">1</field>
   </record>
 </data>
</odoo>

Here the problem I am facing is this menu of Sale Order is visible to even logged out users. Can anyone help me out with the code on hiding for logged out user and visible to the logged in users?

Everything should be code based.

Thanks in advance.


Solution

  • Got my answer

    <odoo>
      <data>
        <template id="custom_sign_in" customize_show="True" inherit_id="website.layout" name="Custom Sign In">
          <xpath expr="//ul[@id='top_menu']" position="replace">
            <ul class="nav navbar-nav ml-auto text-right" id="top_menu">
              <li class="nav-item" t-if="website.user_id != user_id">
                <a class="nav-link" role="menuitem" t-attf-href="/my/orders">
                  <span>Sale Order</span>
                </a>
              </li>
              <li class="nav-item divider"></li>
              <li class="nav-item dropdown" t-if="website.user_id != user_id">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
                  <b>
                    <span t-esc="user_id.name"/>
                  </b>
                </a>
                <div class="dropdown-menu js_usermenu" role="menu">
                  <a href="/my/home" role="menuitem" class="dropdown-item">My Account</a>
                  <a id="o_logout" class="dropdown-item" role="menuitem" href="/web/session/logout?redirect=/">Logout</a>
                </div>
              </li>
              <li class="nav-item" t-if="website.user_id == user_id">
                <a class="nav-link" href="/web/login">
                  <b>Sign in</b>
                </a>
              </li>
            </ul>
          </xpath>
        </template>
      </data>
    </odoo>