У меня есть коллекция пользователей, которую я оставил открытой без аутентификации для POST, чтобы пользователь мог создавать учетные записи, теперь я хочу ограничить доступ, скажем, для коллекции тестов, пользователь может создать только один тестовый документ, я добавил поле auth_field в user_id и я хочу добавить документы с user_id как field_id, в то же время использовать его как auth_field для ограничения чтения/записи.
Это моя тестовая модель, я добавил PUT, потому что у пользователя есть собственный идентификатор, и его следует использовать в качестве поля id_test_item.
Когда я пытаюсь запустить Eve с этим, у меня есть исключение, есть ли способ сделать это правильно, чтобы каждый пользовательский запрос, который правильно аутентифицирован и в поле auth_field установлено значение user_id, работал прозрачно?
Спасибо за вашу помощь.
tests = {
'resource_methods': ['GET'],
'upsert_on_put': True,
'id_field': 'test_id'
'item_title': 'test',
'auth_field': 'test_id',
'item_methods': ['GET', 'PATCH', 'PUT'],
'schema': {
'test_field': {
'type': 'string',
'required': True
}
}
}
Исключение:
eve.exceptions.ConfigException: "tests": auth_field cannot be set to id_field (test_id)
TL;DR
Сделайте отношение один к одному из пользователей и коллекции тестов, у каждого пользователя есть один тест, работает прозрачно через auth_field после аутентификации.