Mục tiêu: hai người dùng root và người dùng. Root có thể truy cập mọi thứ thông qua giao diện web nhưng người dùng sẽ chỉ thấy một số phần của menu.OpenWrt: LuCI: cách triển khai quyền truy cập người dùng bị giới hạn
Một tùy chọn sẽ là chuyển tùy chọn "sysauth" cho mọi mô-đun được đề cập. Điều đó không thực tế lắm, bởi vì người dùng sẽ thấy mọi mục nhập trình đơn và sẽ nhận được trang đăng nhập cho mọi menu mà anh ta không được phép.
Ý tưởng của tôi là tìm hiểu xem ai đã đăng nhập và sau đó không làm gì trong hàm index() của từng mô-đun bị hạn chế. Cho đến nay tôi không thể tìm thấy một chức năng như vậy trong LuCI API (http://luci.subsignal.org/api/luci/), điều đó sẽ trả về một người dùng đã đăng nhập hiện tại.
Tôi biết cách thêm người dùng bổ sung trong OpenWrt/LuCI (https://forum.openwrt.org/viewtopic.php?pid=163013#p163013). Nhưng nó chỉ là một phần của giải pháp.
Bất kỳ ý tưởng nào, cách đạt được mục tiêu của tôi?
nhờ để chia sẻ giải pháp của bạn. tôi có một câu hỏi đơn giản: tôi không biết remove_idx ghi vào tập tin nào? thêm "người dùng kiểm tra" sau khi dispatch() chức năng hoặc trong dispatch() 'modifi dispatch()'. và tôi sử dụng mã "loại bỏ các trang không cần thiết" ở đâu? Tôi đang bối rối. Xin lỗi vì tiếng Anh của tôi không tốt. – omid
tôi đã thêm chức năng 'remove_idx' và kiểm tra người dùng, nhưng chỉ xóa mục trong menu trang đầu tiên hiển thị, nếu tải lại hoặc chuyển đến trang khác, mục' leds' và 'packages' quay lại và có sẵn trong menu. có thể là tôi sử dụng kiểm tra mã người dùng xấu, bạn có thể giúp tôi được không? – omid
Cả 'remove_idx()' và kiểm tra xác thực phải nằm trong tệp 'libs/web/luasrc/dispatcher.lua', vì toàn bộ cây chỉ mục được xây dựng ngay sau khi bạn mở giao diện web của bộ định tuyến. Kiểm tra xác thực người dùng phải ở trong 'dispatch()' routine, ngay sau mã tôi đã đưa ra trong câu trả lời của mình. Đây là thói quen, nơi cây chỉ mục sẽ được lấp đầy. – yegorich