Мой ответ - это скорее серия вопросов и предложений, чтобы вы подумали, как это сделать.Кроме того, я не могу быть очень конкретным, потому что вы предоставили очень мало деталей в своем вопросе.
Вопрос 1, после того, как ваш менеджер введет данные кассира, где вы храните их?В памяти?В файле?В базе данных?Что-то еще?
Вопрос 2, при проверке логина кассира, почему бы вам не проверить данные кассира в этой базе данных / файле / памяти?Ответ в том, что вы должны проверить свои учетные данные кассира по месту их хранения.
Также, для чего бы это ни стоило, вы должны никогда жестко кодировать вход (например,менеджер) в приложение (даже для тестирования).Почему?
- Невозможно избавиться от него, не выпустив новую версию программного обеспечения.
- Это угроза безопасности (по причине 1).
- Если вы делаете это в ходе тестирования, вполне возможно, что вы забудете удалить его до выпуска кода.Тогда применяется причина 2.
- В этом нет необходимости - вы можете просто «заполнить» свое хранилище пользователей единственной записью, представляющей логин и пароль по умолчанию для менеджера (в идеале с указанием «пароль истек») вваш дистрибутив или , если у вас есть установщик, попросите человека, выполняющего настройку, создать логин менеджера в процессе установки.
Поэтому способ проверки учетных данных менеджера будетбудет точно таким же, как и все остальные.
Это будет (должно) иметь преимущество более простой программы, которую будет легче поддерживать.
И на всякий случай, как вы скажете разницумежду менеджером, кассиром, супервайзером или любыми другими типами пользователей, которые у вас могут быть (или понадобятся в будущем) через роль.В вашем хранилище пользовательских данных есть поле, которое определяет, в какой роли пользователь (например, менеджер, кассир и т. Д.).Другая модель - это «несколько полей», где вы указываете, что пользователь имеет эту роль (и, следовательно, имеет доступ к связанной функции или нет).Например, у вас могут быть роли менеджера, руководителя, кассира, бэк-офиса и т. Д.Затем просто укажите значение true / false в своей записи пользователя, которое указывает, может ли этот пользователь получить доступ к функциям, связанным с определенной ролью.
Наконец, ваша программа упрощается, поскольку ваша логика теперь просто
if user has manager role then display manager menu
if user has supervisor role then display supervisor menu"
etc
Обратите внимание, что в приведенном выше коде псевдо нет else
.