Как вы можете ограничить доступ к экземпляру модели Google App Engine для текущего пользователя? - PullRequest
1 голос
/ 10 сентября 2009

Я нашел ответ на этот вопрос вчера (и сегодня у меня возникли проблемы с поиском ссылки). Ссылка, которую я увидел, решила проблему ограничения доступа к экземпляру модели Google App Engine путем перегрузки db.UserProperty, вот так:

class CurrentUserProperty(db.UserProperty):

  def checkCurrentUser(self, value):
    if value != users.get_current_user():
      raise db.BadValueError(
          'Property %s must be the current user' % self.name)
  return value

  def __init__(self, verbose_name=None, name=None):
    super(CurrentUserProperty, self).__init__(
      verbose_name, name, required=True, 
      validator=self.checkCurrentUser)

# then, in the model to have limited access:
def MyModel(db.Model):
    owner = CurrentUserProperty()

Поскольку мне было довольно сложно найти эту ссылку, я собираюсь оставить этот вопрос открытым (хотя вопрос отвечает сам на себя). Однако общая проблема заключается в том, как создать систему разрешений в Google App Engine, чтобы только определенные пользователи (например, «владелец») могли получить доступ к конкретному экземпляру модели. Если у вас есть предложения по этому поводу, я бы в целом наслаждался вашими мыслями.

Спасибо за чтение.

Brian постскриптум Почему всегда получается «Вопрос, который вы задаете, кажется субъективным и, вероятно, будет закрыт». когда кто-нибудь задает вопрос в наши дни? Разве это предупреждение не должно указывать на какие-то объективные критерии, указывающие на то, почему предупреждение есть?

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