Настраиваемые роли для авторизации в AngularJS

Я разрабатываю приложение, в котором роли строго не определены. Роли импортируются из службы.

Я использую AngularJS с UI Router.

Мои состояния определены в приложении, но есть ли простой способ сопоставить состояния или компоненты пользовательского интерфейса (div, кнопки и т. д.) с ролями на лету?

Я думаю о пользовательском интерфейсе, в котором будут перечислены все мои состояния и все мои роли, и администратор может определить доступ к каждому состоянию на основе роли, а затем, когда фактический пользователь входит в систему, он может видеть только соответствующие разделы. им было разрешено видеть, возможно, установив директиву ng-show.

Если есть более простое решение, буду очень признателен за помощь.

Спасибо.


person Bassel    schedule 19.02.2015    source источник


Ответы (1)


Если я правильно понимаю, вы говорите, что у вас есть приложение с фиксированным набором состояний, но с динамическим набором ролей (которые контролируют доступ к фиксированному набору состояний). Это правильно?

Если это так, то высокоуровневый способ, которым я бы подошел к этому, состоял бы в том, чтобы создать директиву, с помощью которой вы можете атрибутировать HTML-кнопки или ссылки (что-то вроде if-permission="some-permission"), а затем эта директива могла бы определить, имеет ли пользователь данное разрешение, проверка данных JSON, которые вы получили с вашего сервера.

Некоторое время назад я создал Gist для несколько похожего вопроса, который может быть вам полезен? Может быть, а может и нет. В любом случае, вот он: https://gist.github.com/bvaughn/90343c06467e9bcb8d27

person bvaughn    schedule 20.02.2015