تغيير دور عضو
الدور ولا شيء غيره. العناوين هي المحور الآخر ولها نداءاتها الخاصة.
ينفّذ الاستدعاء الحقيقي على مساحة عملك، بمفتاحك أنت.
PATCH /members/{userId}
الدور ولا شيء غيره. العناوين هي المحور الآخر ولها نداءاتها الخاصة.
مثال
يتطلب members:write. وroleId هو الحقل الوحيد، وهو مطلوب. هذا النداء يسمّي الحالة التي يريدها لا التغيير الذي يطبّقه، فإرساله مرتين ينتهي بالشخص نفسه يحمل الدور نفسه.
curl -X PATCH "$OE/members/7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a" -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{ "roleId": "role_2b81de079c1f0a4b7e05d386" }'{ "object": "member", "userId": "7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a", "email": "[email protected]", "name": null, "image": null, "role": { "id": "role_2b81de079c1f0a4b7e05d386", "name": "Support", "builtin": null }, "implied": false, "permissions": [ "emails:send", "emails:read", "threads:read", "threads:write", "labels:read", "labels:write", "contacts:read" ], "addresses": [ { "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8", "address": "[email protected]", "access": "viewer" } ], "createdAt": "2026-08-30T15:44:02.000Z"}العناوين غير قابلة للتعديل من هنا، والإغفال مقصود: فهي مجموعة بمستوى وصول لكل عنصر، وPATCH يحمل مصفوفة كان لا بد أن يعني الاستبدال الكامل، وهو سحب جماعي صامت في كل مرة يرسل فيها عميل قائمة قديمة. نداءا العناوين يضيفان ويزيلان واحدًا في كل مرة، فما يحدث هو دائمًا ما طُلب.
وهذه أيضًا هي الطريقة التي يكف بها صاحب المنح القديمة عن كونه implied: لا صف عضوية له، وهذا النداء يُنشئ واحدًا، ومن ثم تصير أذوناته ما اختاره أحد لا ما استلزمه وصوله إلى العناوين. لاحظ انقلاب implied إلى false وظهور createdAt في الاستجابة أعلاه. ولا شيء يتغير في عناوينه.
لا يمكن توزيع دور المالك (role_immutable، وهو 409) مهما كان ما يحمله المُنادي. فجعل شخص ما مالكًا هو نقل لمساحة العمل، وله عواقب مختلفة وهو غير موجود في هذه الـ API.
يسري دوره الجديد على طلبه التالي، وعلى الطلب التالي لكل مفتاح API مُقيَّد به.