Защита определенных частей приложения

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

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;
}

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

15.12.2008 09:38:52
2 ОТВЕТА
РЕШЕНИЕ

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

SecurityManager.hasAccess(SecurityManager.MODULE_VIEW_WORKSPACE)

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

0
16.12.2008 19:32:54

сем,

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

Мартин.

0
15.12.2008 10:12:00