Это постоянный вопрос для меня, что я никогда не разрешался, поэтому я бы хотел, чтобы вы внесли свой вклад. Если у меня есть действия, которые, как я знаю, пользователь не сможет выполнить из-за недостаточных привилегий или состояния объекта, должны ли элементы пользовательского интерфейса для этих действий скрываться от пользователя, быть видимыми, но отключенными или видимыми и приводить к ошибке при попытке? Каким будет обоснование вашего ответа? Если отключено, сообщите ли вы причину, почему и, если да, то как?
Это веб-интерфейс, поэтому я уже знаю, что мне нужно проверять входящие сообщения/получать разрешения и обрабатывать там ошибки. Я в первую очередь говорю о том, как обрабатывать пользовательский интерфейс.
Это похоже на Правила об отключении или скрытии пунктов меню, хотя меня интересуют все типы элементов пользовательского интерфейса, а не только меню.
Примеры:
-
У меня есть новая страница, которая позволяет пользователю создавать новое событие. События могут быть главными событиями или субвентилями. Для создания мастер-события требуется привилегия "EditMasterEvent", а для создания субменю требуется только привилегия "EditEvent". У меня есть раскрывающийся список, который позволяет выбрать существующее событие как родительское (главное событие) или без родителя (это главное событие). Если выбор "Создать мастер-событие" будет показан в раскрывающемся списке или пропущен, если пользователь имеет только привилегии "ИзменитьEvent".
-
Для удаления событий требуется, чтобы вы были администратором приложения или имели соответствующее разрешение для типа события. В последнем случае мероприятие должно быть старше 5 лет. Удаление события приводит к серьезному каскадному удалению связанных данных в системе и по юридическим причинам эти данные должны храниться не менее 5 лет после события. Поскольку эта операция редка для обычного пользователя, типичным случаем является то, что действие недоступно. Должно ли оно отображаться всегда или только когда это действительно возможно?