Uprawnienia userów

Cześć,

czy może ktoś z Was bawił się uprawnieniami userów?

Jest w dokumentacji takie coś (Permissions | Home Assistant Developer Docs), ale dość enigmatycznie to opisane.

Marcin.

edit
Jako uzupełnienie znalazłem coś takiego - Can I Have User Permissions? | Home Assistant Developer Docs

Jutro sobie przetestuje.

edit 2

Działa. Trzeba tylko pamiętać, żeby przed edycją pliku auth wyłączyć ha.

Teraz pozostał tylko jeszcze problem, jak ograniczyć userowi pokazywanie tylko i wyłącznie jednego dashboarda.

2 polubienia

W edycji dashboardu masz wybór, który użytkownik ma go widzieć. Zakładka - widzialność.

Tak, ale to dotyczy tylko kart (views). Jeśli poustawiam jako niewidoczne dla jakiegoś usera, to nadal się pokazują w menu, ale po wejściu na dashboard to jest pusty. Mi zależy, żeby były niewidoczne w menu.

Co chcesz konkretnie osiągnąć ? W trybie UI raczej trudno osiągnąć cos takiego, ponieważ wszystko jest w jednym pliku konfiguracyjnym (RAW).
Pewnym rozwiązaniem jest karta Subviews zakładka ta jest widoczna tylko w trybie edycji.

Wewnątrz Subviews tworzysz karty jak w każdym innym widoku. Do Subviews odwołujemy się

Screenshot - 04.03.2023 , 10_55_39

https://www.youtube.com/watch?v=NHfBcDGJkk0

Cześć,

w swoim HA obsługuje kilka urządzeń rozsianych po całej Polsce. Zazwyczaj gniazda wifi / przełączniki podłączone przez Tuya i urządzenie, które zbiera kilka parametrów z akwarium takich jak temperatura, pH i TDS. Włączanie i wyłączanie odpowiednich gniazd załatwia mi NR na podstawie tych odczytów.

Niektórzy użytkownicy chcieliby mieć wgląd w odczyty parametrów. Lokalnie mogą się wbić na moje urządzenie i tam przez web’a sprawdzić, co i jak. Zdalnie jest już z tym problem. Mógłbym im przekonfigurować router i zrobić jakieś przekierowanie, ale nie zawsze mam dostęp do routera.

Rozwiązaniem byłoby udostępnienie im przygotowanego dla nich dashboard’a. Udało mi się już dla testowego usera ograniczyć dostęp tylko do encji, które są z nim związane. Nie chciałbym jednak, żeby widział wszystkie dashboardy w menu, nawet jeśli po wejściu w jakąkolwiek nic nie będzie widać, to po prostu wprowadzają niepotrzebne zamieszanie.

Rozwiązaniem jest zalogowanie się na konto usera i wyłącznie niechcianych dashboardów.

To rozwiązanie niestety trzeba robić na każdej przeglądarce, na której się ktoś loguje.

Osiągnąć bym chciał to co na screenie poniżej, czyli tylko wybrany, konkretny dashboard dla usera, bez ingerencji z jego strony.

Pozdrawiam,
Marcin

To może dla każdego usera zrobić osobny widok podrzędny i udostępnić mu tylko link bezpośredni do tego widoku.
Jeżeli cały daschbord HA (wszystkie widoki) składałby się tylko z widoków podrzędnych to użytkownik z linku bezpośredniego, nawet po kliknięciu “wróć” nic innego by nie zobaczył. Tylko pewnie takie rozwiązanie rozwala temat administrowania Tobie, bo do swoich widoków musiałbyś się też odnosić bezpośrednio linkami.
Ew., jeśli jest taka możliwość (ja nie wiem), osobna instancja HA do której wystawiasz/eksportujesz(?) tylko widoki dla klientów.

Witam
Udało Ci się uzyska pożądany efekt? Też potrzebuję coś takiego zrobić.

Cześć,
tak, udało mi się to zrobić choć jest to nieco upierdliwe, bo wymaga za każdym razem zatrzymania HA kiedy chcesz wprowadzi jakieś zmiany, a potem uruchomienia. Nie do końca działa też , jeśli chce się przypisać niektóre encje do “area”.

U mnie to wygląda tak:

  1. tworzysz usera - u mnie dla przykladu jest to test0
  2. loguję się przez ssh na server ha (u mnie debian)
  3. przechodzę na konto root
  4. zatrzymuje ha komenda ‘ha core stop’
  5. przechodzę do katalogu (u mnie) cd /usr/share/hassio/homeassistant/.storage/
  6. dowolnym edytorem edytuje plik auth
  • odszukuje w sekcji users blok poświęcony userowi, dla którego chcę nadać uprawnienia - u mnie test0
     {
        "id": "637ee5a95ac04f088024509907856d22",
        "group_ids": [
          "system-users"
        ],
        "is_owner": false,
        "is_active": true,
        "name": "test0",
        "system_generated": false,
        "local_only": true
      }
    ],

zmieniam “system-users” na “test0-group”

dalej w sekcji groups dodaje nową grupę i dodaję w niej encje, które chcę udostępnić. Dodatkowo, opcjonalnie dodałem też area, ale encje np typy input_number z jakiegoś powodu są pomijane i nie są udostępniane userowi, stąd też pewniejszy dla mnie sposób to dodanie każdej encji w “entities”

      {
        "id": "test0-group,
        "name": "Test Zero Group",
        "policy": {
          "entities": {
            "entity_ids": {
              "sensor.test0_co2_value": true,
              "input_number.test0_pomiar_kh": true,
              "input_number.test0_korekta_tds": true,
              "sensor.test0_tds_po_korekcie": true,
              "sensor.aqumi_one_00c81c9c_ip": true,
              "sensor.aqumi_one_00c81c9c_level": true,
              "sensor.aqumi_one_00c81c9c_ph": true,
              "sensor.aqumi_one_00c81c9c_swversion": true,
              "sensor.aqumi_one_00c81c9c_tds": true,
              "sensor.aqumi_one_00c81c9c_temperature": true
            },
            "area_ids": {
              "test0": true
            }
          }
        }
      }
  1. zapisanie pliku auth ze zmianami
  2. uruchomienie HA za pomocą polecenia “ha core start”

Generalnie upierdliwe strasznie :slight_smile:
Pozdraawiam,
Marcin

1 polubienie

Jprd masakra jakaś. Ja u siebie chyba tego nie zrobie bo mam na malinie postawiony hasio

pewnie jest do ogarnięcia, ale niech ktoś bardziej zaznajomiony z mainami Ci podpowie.

Ogarnołem za pomocą tego dodatku:
image
Dodatek z Hacs