Приветствую всех уважаемых котов. Стоит задача следующего плана. Для некоего девайса разрабатывается менюшка управления. Требование заказчика, чтобы доступ к отдельным элементам меню был возможен только из-под root пароля. Т.е. если меню верхнего уровня выглядит примерно вот так:
Код:
LCDML_add (0 , LCDML_0 , 1 , "Finance" , NULL); // NULL = no menu function LCDML_add (1 , LCDML_0 , 2 , "Devices" , NULL); // NULL = no menu function LCDML_add (2 , LCDML_0 , 3 , "Settings", NULL); // NULL = no menu function LCDML_add (3 , LCDML_0 , 4 , "Prices" , NULL); // NULL = no menu function LCDML_add (4 , LCDML_0 , 5 , "Operating Mode" , NULL); // NULL = no menu function LCDML_add (5 , LCDML_0 , 6 , "Encashment", NULL); // NULL = no menu function LCDML_add (6 , LCDML_0 , 7 , "Control" , NULL); // NULL = no menu function LCDML_add (7 , LCDML_0 , 8 , "Log" , NULL); // NULL = no menu function
то обычный пользователь может войти (увидеть?) два первых пункта меню. А вот админ с root паролем может видеть и входить во все пункты. С подменю тоже есть похожие заморочки, но сам принцип остается прежним. И вот тут у меня затык на уровне самого принципа реализации подобного. Создавать два меню и каким-то образом переключаться между ними после ввода пароля на "нулевом" экране? Библиотека, которой пользуюсь (LCDMenuLib2) вроде как не поддерживает создание двух меню в одной прошивке. И, в общем дилемма. Извращаться в рамках этой библиотеки, но совершенно не понятно как. Или брать другую библиотеку, но совершенно непонятно какую. Буду благодарен за дельный совет.
Заголовок сообщения: Re: Доступ к элементам меню по root паролю
Добавлено: Вс ноя 19, 2023 17:15:58
Друг Кота
Карма: 107
Рейтинг сообщений: 3801
Зарегистрирован: Пн фев 09, 2009 22:19:49 Сообщений: 24283 Откуда: Когда-то был прекрасный город для людей
Рейтинг сообщения:0
Да сделай просто две версии программы с разными меню, и разреши доступ к полной версии только с админскими правами, раз не знаешь, как разделить видимость меню.
1 - Сделать так: высветить пункты, которые разрешены пользователю и пункт настройки. При входе в пункт настроек выдается поле доступа. Как только ввели пароль, выдается полный доступ. 2 - Советую обратить внимание на MicroMenu ver 1 и ver 2. Я ухватил идею и на данный момент не вижу альтернативы меню для МК.
Demiurg, да, я понимаю общий принцип. Добавить поле доступа, булево значение, 1 -- есть доступ, 0 -- нет доступа. Я пока не придумал, как это обрабатывать на этапе вывода строки меню на экран. В самой библиотеке МикроМеню нет такой фичи, значит надо править библиотеку. Если я правильно понимаю
При входе в главное меню ставим запрос - простой доступ или админ (при админе - следующее поле ввод пароля). Пароль ставит соответствующий флаг, а тот флаг в сою очередь будет аргументом для функций последующих субменюшек в коих действия функционала увязаны с тем аргументом(админ доступ).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения