Шаблон дизайна для разрешений

#design-patterns #web

#шаблоны проектирования #веб

Вопрос:

Я хочу создать веб-сайт, на котором есть несколько разных типов пользователей, например:

  • Администратор — который может делать все на сайте
  • Зарегистрированный пользователь — который может делать все на своей странице.
  • Незарегистрированный пользователь — который может только просматривать веб-сайт.

Существует ли шаблон дизайна, подходящий для этой ситуации, и как он будет применяться к моему сценарию?

Комментарии:

1. Зависит от того, какой язык программирования и фреймворк вы используете.

Ответ №1:

Шаблоны проектирования не являются волшебным средством для решения проблем. Это проверенные средства применения разумной практики разработки программного обеспечения к разработке кода.

Ответ №2:

Если каждая операция, выполняемая пользователем, может быть сопоставлена с URI, тогда у вас может быть уровень безопасности или использовать фреймворки, которые можно настроить с помощью сопоставления URI с ролью, чтобы разрешить доступ.

Если это на поведенческом уровне, вы, вероятно, можете использовать шаблон проектирования прокси здесь. Он будет прокси-сервером для реализации вашего полного объекта, когда вы хотите быстро завершить работу на основе проверки безопасности. Однако, если объект ведет себя по-разному для разных пользователей, вы могли бы использовать реализации декоратора для различных методов, которые должны вести себя по-разному.

И если вы хотите получить другую версию объекта, которая, возможно, также изменена структурно для различных ролей, можно использовать серию посетителей. Здесь может быть применим шаблон посетителя.

Ответ №3:

Это своего рода вопрос vaue, но, возможно, вы можете взглянуть на шаблон state design. Когда у пользователя есть разрешение только на чтение, вы загружаете класс состояния только для чтения. Когда пользователь имеет доступ на запись, используйте класс состояния записи.