Visible
You can specify the visibility of views as a whole or per-user. (Note: This is only for the display of the tabs. The URL path is still accessible)
It limits access to view (also named tabs) on a per user basis. I am looking for a level “above” the entire dashboard shouldn’t be accessible.
This is the part I am missing / looking for.
So basically you want to completely restrict access of specific dashboard pages to certain users. This is not directly possible, but it is indirectly possible. Dashboards are viewable by anyone that is logged in and visits the url. The solution that currently is, will still provide access if one visits the url. It just hides it from the sidebar. However…
You can create users without admin privileges. They won’t be able to access pages like Supervisor, Settings and Add-ons. According to the docs, you can also create Dashboards that are only accessible by admin: require_admin: true - Should this dashboard be only accessible for admin users
However, this means that in order to restrict a dashboard, that user is also restricted from other admin pages (like Supervisor, Settings, Add-ons).
So, yes this works, kinda. You cannot specifically restrict a user to a certain Dashboard. But you can restrict a user to all admin stuff and create admin-only Dashbords.
What you want to do is to also have differences between the non-admins. That is not possible. It only hides it from the sidebar, but using the url any non-admin user can access any non-admin Dashboard. For this you will need to make a feature request.
Hi, any update on this ? I’m also missing this feature to customize the UI on a per-user basis.
Do you have a link to your feature-request so that I can vote ?
Yes, it’s a pity that the ‘visible’ setting is only available on the views, but not for dashboard or not for cards
It would be very handy to have this setting also available on other structures in lovelace so that you can make a finegrained config on a per user basis, it’s a bit clumsy that only the views have this setting.
But do you have a feature-request still open for this ? I was looking through the list but couldn’t find it.
I am looking for this same thing. I propose that groups be implemented. It would work similarly to how the option for “admin only” can be applied, except that option would be replaced with “Available/Visible to Group” and then you would select which groups could see that dashboard. I suppose having a dropdown with checkboxes for individual users would also work though. I’m a Windows admin so groups is what is familiar, hah.
If I knew how to submit a feature request, I would.
Edit: Well that wasn’t too hard. Thanks Google. Here it is:
1 Select a dashboard on the sidebar
2 Open dashboard menu (3 dots on the right). Select Edit Dashboard
3 Edit view (pencil icon)
4 Click the Visibility tab
5 Select which user should see this view in the navigation.
This way, you can assign the different dashboards a user can see.
This is a method, but not THE method I am looking for.
As admin of HA, I can create X different dashboards. I would like to have a way to map user X to dashboard a, Y to b… Kind of a login page. And user X wouldn’t be able to go to b. All the available solutions for me are unideal ways to accommodate that missing (at least for me) feature.
I would also love to see this happen, I wanted to made a dashboard and a new user account for my sister’s kids to track me/Santa until Christmas and now they just keep flashing the lights cause they got access to this panel too.
This is the solution I use for my family’s companion app dashboards. I use ui minimalist to create my dashboards, I also use kiosk mode to limit the access to the side bar and header for all but me (admin).
Each person has a ‘home’ screen that is visible to only them, which allows them access to (for example) their own light, common lights in the garden etc, they can then navigate via buttons to room views and various other shared resources (local bus times, weather and our shared shopping list) But not heating controls, cameras, networking, and all the other elements I can’t trust them not to mess up!
I do have repetitive code in each of the home screens, but any changes that are common to all users is just a copy and paste exercise to propagate it to everyone.
I then use the UI minimalist back chip on each linked page to take them back ‘home’ I control this home action using the following:
- type: "custom:button-card"
template: chip_back
variables:
usernavigation: &usernav |
[[[
let home = 'home';
return user.name + home ;
]]]
ulm_chip_back_path: *usernav
This means that any user ends up navigating to their own home page for example olliehome.yaml, or georgehome.yaml etc. Every common page that is shared by all users has this chip on it.
This obviously doesn’t prevent someone seeing any other pages if they log in and navigate directly to it in a browser, but within the companion app, they are limited. Works well for us.
Something I don’t understand, when someone you know let’s say john uses a new phone/laptop/stuff to connect to HA. He uses john as his username, how do you force john to go to directly johnhome.yaml?
If I understand correctly, he arrives on a default page shared by all and as soon as he moves to another page he is “jailed” into johnhome.yaml. Is that it ?
I supported a WTH on the matter. It seems so obvious to me that there is such a requirement to be able, as an admin, to link john to johnhome.yaml without much complication.
Simplest option right now is to have just the default dashboard, with views in it that are only visible to the specific user. It is a bit of a pain to have it all in one, but it works until there is a better way.
yes, I generally set up the kids devices with home assistant, so once it’s on their device, I can force that initial transition from default home to their own home page. That said, with the visibility flag set as well, the device usually finds itself starting on one of the shared pages, although I see no reason why this is the case, and don’t really understand why that would be the case. It’s certainly a trade off and obviously can’t stop access to some pages for nefarious reasons, but it works for us.
When they are getting older, their smartphone is untouchable
As I said above, that solution is probably the best that can be done until a simple link username ↔ lovelace dashboard can be made. Hopefully, one day…
Would you mind explaining how you did this based on the client? Is there a way to hide cards based on the specific device accessing it? Is there a variable in Lovelace that lets you determine the current media player showing the dashboard?