Защита определенных частей приложения - PullRequest
3 голосов
/ 15 декабря 2008

Если кто-то входит в мое приложение, этот пользователь содержит словарь с определенными разрешениями.

ex: module.view.workspace = true
    module.view.reporting = false
    ...

Тогда мы знаем, к каким частям приложения пользователь имеет доступ. Я хочу знать, как мы можем применить эти разрешения к представлению. Мы работаем в среде AS 3 (FLEX).

Это то, что мы придумали до сих пор (но я хочу иметь представление о других возможностях). У нас есть modelLocator, хранящий loggedOnUser (который содержит его разрешения). эти разрешения добавляются к объекту allowObject в модели locator. Мы создаем класс SecurityManager, у которого есть функция с именем hasAccess («разрешение»). Этот объект проверит PermissionObject в модели locator и вернет true / false. В представлении мы просто проверяем, есть ли у пользователя доступ, а затем показываем элемент управления.

If (SecurityManager.hasAccess("module.view.workspace") {
     // code that generates the workspace;
}

Я просто не знаю, является ли это лучшей практикой. Пожалуйста, помогите мне здесь.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2008

Подход в принципе действителен. Я бы порекомендовал определить класс со статическим константом, который соответствует вашим разным разрешениям, и сослаться на это:

SecurityManager.hasAccess(SecurityManager.MODULE_VIEW_WORKSPACE)

Это сэкономит вам массу ручного поиска / замены, если вы начнете изменять названия элементов вашего разрешения.

0 голосов
/ 15 декабря 2008

сем,

У меня есть похожий метод, и он до сих пор работал нормально. Мое приложение написано на C # .NET, но метод все еще действителен. Так как у меня есть приложение WinForms, я должен сделать что-то другое, но в какой-то момент есть оператор If, задающий тот же самый «вопрос».

Martin.

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