Я пишу серию мастеров веб-страниц для процесса подачи заявки. Мастер составляет 30 страниц. Существует 4 разных типа пользователей. В зависимости от типа пользователя они могут видеть разные статические тексты на каждой странице формы, или они могут видеть разные поля в форме. Это 4 пользовательских типа X 30 страниц = 120 общих веб-страниц. 85% из 4 пользовательских интерфейсов Wizard являются одинаковыми. Различия варьируются от страницы к странице и от типа пользователя до типа пользователя, поэтому я не могу иметь 25 общих страниц мастера и 5 уникальных для каждого типа пользователя.как показать разные сообщения различным типам пользователей в grails/java
Я пытаюсь написать код, чтобы у меня не было 30 страниц, дублированных 4 раза. Я использую шаблоны Grails, так что у меня всего 30 страниц, которые вызывают различия в зависимости от типа пользователя. Одна из моих идей заключалась в подкреплении интернационализации, встроенной в грайлы. Например, если у меня есть пользователь с ролью Role_Finance, их мастер вытащит текст для отображения из messages.properties. Если у меня есть пользователь с ролью Role_Contractor, я мог бы назначить им другой язык (испанский), чтобы мастер вытащил другой текст из messages_es.properties.
Хотя я понимаю, что это не цель интернационализации граалей, похоже, что это было бы чистое решение. Это не международная заявка, поэтому я не хочу потерять эту функциональность. Кто-то должен был сделать что-то подобное раньше и найти лучшее решение?
Это звучало хорошо, пока я не начал его реализовывать. Затем я понял, что в springsecurity объект User имеет набор ролей. Я мог бы проверить первую роль, но если я добавлю больше роли позже на объект пользователя, это может вызвать проблемы. – spock99
. Затем добавьте другой метод в класс пользователя, который возвращает «тип» пользователя. Вы можете проверить роли или что-то еще в этом методе. Или подумайте о своем дизайне, возможно, весенние роли безопасности - не лучший способ дифференцировать пользователей. – micha