Роль ParseUser на отдельном объекте - Parse.com

У меня есть 2 класса в Parse, класс User и класс Group. Идея проста. Зарегистрированный пользователь сможет создать новый объект группы, и между этим пользователем и этой вновь созданной группой будет сформирована связь с массивом. Теперь этот пользователь может пригласить других пользователей в эту группу с помощью приглашения с push-уведомлением. Второй пользователь также сформирует отношения с этим групповым объектом, как только он примет приглашение.

Пока это просто и работает нормально. Однако я хочу, чтобы создатель этого группового объекта имел полный контроль над созданной им группой.

1- Создатель может приглашать других пользователей, участники не могут.

2- Создатель может выгнать члена

3- Создатель может уничтожить / удалить объект группы.

Я не уверен, как правильно реализовать это с помощью ParseRole. Какие-либо предложения?

2 ответа

Решение

Вы можете применить требование 1 и требование 3 с помощью ACL на уровне строк, разрешающего запись / удаление в таблицу групп только пользователем-создателем. (чтобы применить это для приглашений, проверьте ACL группы в логике приглашения, чтобы увидеть, равен ли приглашающий пользователь создавшему пользователю).

Требование 3 сложнее и, я думаю, недостижимо, учитывая то, как вы описываете данные. Пользователь, который принимает приглашение, может добавить в свой массив группы, но никакой другой пользователь (включая создателя группы) не сможет обновить строку этого пользователя.

В качестве альтернативы вы можете (а) представлять членство в группе с помощью массива на объекте группы, или (б) создавать другой объект, по одному для каждого пользователя, где хранится массив членов групп. Думайте об этом объекте как о личности пользователя и сохраняйте связь указателя между ним и его пользователем.

Вы можете добавить столбец "автор" в класс группы с указателем пользователя. Когда вы получаете запрос, вы проверяете, равен ли автор запроса группе авторов.

Вы должны добавить токен пользователя в свой запрос и сравнить Parse.User.current() с автором группы.

Другие вопросы по тегам