# Dynamically hide/show Perspective Dock handle based on user roles

**URL:** <https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [January 23, 2026, 9:40am UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508 "2026-01-23T09:40:06Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aljosa\_Bozic](https://avatars.discourse-cdn.com/v4/letter/a/f9ae1b/32.png) [@Aljosa\_Bozic](https://forum.inductiveautomation.com/u/Aljosa_Bozic)\
**Post date:** [January 23, 2026, 9:40am UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/1 "2026-01-23T09:40:06Z")

</div>

Hello everyone,

I’m using **Ignition Perspective (8.1.47)** with a Dock for navigation. In _Page Configuration_ –\> _Shared Settings_ there is a feature **autoHide** Handle, but this setting appears to be static and not changeable at runtime.

My requirement is simple:

- Some roles (e.g. Office/Admin) should see and use the Dock handle

- Other roles (e.g. Operator/HMI) should **not** see the handle and should not be able to open the Dock

All users are active simultaneously, so this must be **per-session and role-based** , not global.

And my questions are:

- Is there any supported way to dynamically control Dock handle visibility based on roles (Maybe access to **Dock ID** - look at the picture below)?

- If Page Configuration cannot be changed at runtime, is the recommended approach to hide/disable a custom handle component instead?

Thanks for any guidance.

Pictures:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/5/a50889f8a8e4dd985721eb29053e85ce632d6050.png)

 ![DockHandle_1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/e/4eaa8b02a0dfc04ee52dd46ed714b46c85ec8f3f.jpeg)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 23, 2026, 1:32pm UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/2 "2026-01-23T13:32:24Z")

</div>

I don't think you'll be able to make this work cleanly. You should make a permanently accessible dock that includes or hides a nested view based on roles.

---

<div class="post-metadata">

**Author:** ![dillon](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dillon/32/81537_2.png) [@dillon](https://forum.inductiveautomation.com/u/dillon)\
**Post date:** [January 23, 2026, 3:49pm UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/3 "2026-01-23T15:49:30Z")

</div>

> [@pturmel](#):
>
> permanently accessible

I do this and use bindings to control what navigational components render based on the session's auth properties.

---

<div class="post-metadata">

**Author:** ![Nol](https://avatars.discourse-cdn.com/v4/letter/n/8e8cbc/32.png) [@Nol](https://forum.inductiveautomation.com/u/Nol)\
**Post date:** [January 23, 2026, 4:07pm UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/4 "2026-01-23T16:07:59Z")

</div>

Not entirely sure if this would work but you could set the dock to on demand instead of auto or visible, then put a startup event on the pages that launches the dock only if they're authorized for certain roles.

Though on demand does close when navigating to new pages so I'm not sure how far that'll get you. If it has to re-launch each page that might feel buggy. But maybe it's worth a test to see if there's a route that way.

Alternatively you could play with the system.perspective.alterDock function to resize the dock down to 1 width for operator roles to effectively hide it? Though the handle would still show.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 23, 2026, 4:12pm UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/5 "2026-01-23T16:12:08Z")

</div>

> [@Nol](#):
>
> Though the handle would still show.

Unclean!!

---

<div class="post-metadata">

**Author:** ![Nol](https://avatars.discourse-cdn.com/v4/letter/n/8e8cbc/32.png) [@Nol](https://forum.inductiveautomation.com/u/Nol)\
**Post date:** [January 23, 2026, 4:14pm UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/6 "2026-01-23T16:14:25Z")

</div>

> [@pturmel](#):
>
> Unclean!!

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/3/7351695242721b06059d03c35cde1686549b7ac7.jpeg)

Actually reviewing the function you can config the handle to hide with alterDock. So perhaps that's an actual option. Set it to 1 width and hide the handle for operator accounts. Or even maybe just .closeDock will work, I can't test at the moment but I'd give those commands a shot.

> **[system.perspective.alterDock | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-perspective/system-perspective-alterDock)**
>
> Changes configuration of a specified dock on a Perspective page.

---

<div class="post-metadata">

**Author:** ![Aljosa\_Bozic](https://avatars.discourse-cdn.com/v4/letter/a/f9ae1b/32.png) [@Aljosa\_Bozic](https://forum.inductiveautomation.com/u/Aljosa_Bozic)\
**Post date:** [January 28, 2026, 7:18am UTC](https://forum.inductiveautomation.com/t/dynamically-hide-show-perspective-dock-handle-based-on-user-roles/113508/7 "2026-01-28T07:18:23Z")

</div>

> [@Nol](#):
>
> atively you could play with the system.perspective.alterDock

Thanks. Althought it is not some system solution, it worked with:

`def runAction(self, event): system.perspective.alterDock('west', { 'handle': 'hide' } )`

I can play with that onward, base it on the “roles” etc.

Thanks all for the guidance.
