Шаблон дизайна для разрешений - PullRequest
1 голос
/ 29 апреля 2011

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

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

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

Ответы [ 3 ]

1 голос
/ 23 июня 2012

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

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

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

1 голос
/ 29 апреля 2011

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

0 голосов
/ 02 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...