Cel: dwóch użytkowników root i użytkownik. Root może uzyskać dostęp do wszystkiego za pośrednictwem interfejsu internetowego, ale użytkownik powinien widzieć tylko niektóre części menu.OpenWrt: LuCI: jak wdrożyć ograniczony dostęp użytkownika
Jedną opcją byłoby przekazanie opcji "sysauth" do każdego modułu, o którym mowa. Nie jest to zbyt praktyczne, ponieważ użytkownik zobaczy wszystkie pozycje menu i otrzyma stronę logowania dla każdego menu, do którego nie ma dostępu.
Mój pomysł polega na tym, aby dowiedzieć się, kto jest zalogowany, a następnie nic nie robić w funkcji index() każdego ograniczonego modułu. Do tej pory nie mogłem znaleźć takiej funkcji w LuCI API (http://luci.subsignal.org/api/luci/), która zwróciłaby bieżącego zalogowanego użytkownika.
Wiem, jak dodać dodatkowych użytkowników w OpenWrt/LuCI (https://forum.openwrt.org/viewtopic.php?pid=163013#p163013). Ale to tylko część rozwiązania.
Każdy pomysł, jak osiągnąć mój cel?
dzięki za akcję rozwiązania. Mam proste pytanie: nie wiem, aby usunąć plik remove_idx do którego pliku? dodaj "sprawdzanie użytkownika" po funkcji wysyłki() lub w funkcji dispatch() "modifi dispatch()". i gdzie używam kodu "usuń niepotrzebne strony"? Jestem zdezorientowany. Przepraszam za mój zły angielski. – omid
Dodałem funkcję 'remove_idx' i sprawdzenie użytkownika, ale tylko usunięcie pozycji w renderowaniu pierwszej strony menu, ponowne załadowanie lub przejście do innej strony, elementy' leds' i 'packages' cofają się i są dostępne w menu. może być złe użycie sprawdź kod użytkownika, czy możesz mi pomóc? – omid
Zarówno 'remove_idx()' i sprawdzanie autentyczności muszą znajdować się w pliku 'libs/web/luasrc/dispatcher.lua', ponieważ całe drzewo indeksów jest budowane zaraz po uruchomieniu interfejsu sieciowego routera. Sprawdzanie autentyczności użytkownika musi znajdować się w procedurze 'dispatch()', zaraz po kodzie, który pokazałem w mojej odpowiedzi. Jest to procedura, w której drzewo indeksów zostanie wypełnione. – yegorich