Я создаю приложение IOS с помощью django-tastypie. Разрешение пользователя по умолчанию — только «получить» что-то. Однако пользователю может быть предоставлено разрешение «добавить» для публикации чего-либо. как создать API вкусного пирога? как предоставить разрешения пользователю с помощью django-tastypi?
вкусный пирог: как добавить права пользователю?
Ответы (1)
Во-первых, я хотел бы указать на нюанс между аутентификацией и авторизацией, который сбил меня с толку при использовании deliciouspie раньше:
- Аутентификация означает «Докажите мне, что вы тот, за кого себя выдаете», т. е. некоторая форма входа в систему с паролем или ключом API.
- Авторизация означает: «Теперь, когда я знаю, кто вы, позвольте мне проверить, какие у вас есть привилегии, т. е. позвольте мне посмотреть, к какой группе пользователей вы принадлежите / какие конкретные права предоставлены для вашей учетной записи пользователя, и т. д.
Теперь, имея это в виду, взгляните на очень лаконичные примеры. здесь, если вы еще этого не сделали.
Например, вот как вы можете ограничить пользователей доступом только к их собственной пользовательской информации:
# REST endpoint for authenticating user accounts
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'auth/user'
authentication = BasicAuthentication()
authorization = DjangoAuthorization()
def apply_authorization_limits(self, request, object_list):
return object_list.filter(username=request.user)
А вот фрагмент того, как вы можете аутентифицировать пользователя при взаимодействии с представлением:
# first check that the user is allowed to post
username = form.cleaned_data['username']
password = form.cleaned_data['password'] # @todo: remove this for production
user = authenticate(username=username, password=password)
if user is None:
raise Http404('Error: new_frame: invalid username / password')
if not user.is_active:
raise Http404('Error: new_frame: your account is inactive')
# username / password is correct + user is active, proceed with posting
person
sampson-chen
schedule
20.11.2012
Я использую DjangoAuthorization(), но, например, как добавить пользователю разрешение add_message?
- person user1687717; 20.11.2012