Существует ли рекомендуемая практика или структура для обеспечения видимости разрешений на уровне записи и уровня атрибутов с помощью движка google-app-engine db.Model (и/или ndb.Model)?
Я читал о хуках для моделей, но мне бы хотелось узнать, существует ли рекомендуемая передовая практика для этого.
class Person(db.Model):
first_name = db.StringProperty()
last_name = db.StringProperty()
city = db.StringProperty()
# Record level permissions:
# "top" visible only to managers
# "medium" visible to managers & supervisors
# "none" visible to all (unless other permissions restrict)
secrecy = db.StringProperty(required=True, choices=set(["top", "medium", "none"]))
birth_year = db.IntegerProperty() # Accessible only with "Manager" permission
height = db.IntegerProperty() # Writable only with "Supervisor" permission
Еще немного контекста: мне нужно, чтобы эти проверки разрешений были на уровне модели, поскольку я хочу, чтобы пользователи могли выполнять произвольные запросы GQL и DML с помощью простого вызова JavaScript RPC.