Skip to main content
You are currently viewing the documentation for Filament 4.x, which is a previous version of Filament.Looking for the current stable version? Visit the 5.x documentation.

Introduction

The user menu is featured in the top right corner of the admin layout. It’s fully customizable. Each menu item is represented by an action, and can be customized in the same way. To register new items, you can pass the actions to the userMenuItems() method of the configuration:

Grouping user menu items

By default, all user menu items are rendered in a single list. If you want to separate them into distinct groups, you can pass an array of arrays to the userMenuItems() method. Each array is rendered as its own group, separated by a divider:
The logout item is added to the last group by default. To place it yourself, register it explicitly in any group using the logout array key. Since its default sort() puts it at the end of its group, adjust the sort if you want it elsewhere within the group:

Moving the user menu to the sidebar

By default, the user menu is positioned in the topbar. If the topbar is disabled, it is added to the sidebar. You can choose to always move it to the sidebar by passing a position argument to the userMenu() method in the configuration:
To customize the user profile link at the start of the user menu, register a new item with the profile array key, and pass a function that customizes the action object:
For more information on creating a profile page, check out the authentication features documentation. To customize the user logout link at the end of the user menu, register a new item with the logout array key, and pass a function that customizes the action object:

Conditionally hiding user menu items

You can also conditionally hide a user menu item by using the visible() or hidden() methods, passing in a condition to check. Passing a function will defer condition evaluation until the menu is actually being rendered:

Sending a POST HTTP request from a user menu item

You can send a POST HTTP request from a user menu item by passing a URL to the url() method, and also using postToUrl():

Disabling the user menu

You may disable the user menu entirely by passing false to the userMenu() method: