Как использовать RBAC (или контроль доступа) в Google App Engine? - PullRequest
2 голосов
/ 13 апреля 2011

Кто-нибудь использовал RBAC (или другой контроль доступа) в проекте на основе GWT, развернутом в App Engine?
Или на самом деле, как управлять вызовами GWT-RPC по ролям?

Или проще "отправлять код" в браузер клиента на основе учетных данных пользователя?

Идеи, библиотеки, все приветствуется!

Спасибо

1 Ответ

2 голосов
/ 03 апреля 2012

Вы можете добавить свойство ролей в свой класс пользователя:

class MyUser(db.Model):
  roles = db.ListProperty(db.Key)

class Role(db.Model):
  ...

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

if required_role in current_user.roles:
  do_the_thing()
else:
  warn_sternly()

Вам нужно смоделировать, кто в каких ролях.Это отношение многие ко многим (по крайней мере, в большинстве приложений).Это один из способов реализации таких отношений, но есть и другие способы, которые могут быть более подходящими для вашей ситуации.Вот страница с советами по моделированию отношений в App Engine: https://developers.google.com/appengine/articles/modeling

...