پرش به مستندات
API

تغییر نقش یک عضو

فقط نقش و نه چیز دیگر. نشانی‌ها محور دیگری‌اند و فراخوانی‌های خودشان را دارند.

PATCHapi.openemail.uk/members/{userId}

فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا می‌کند.

PATCH /members/{userId}

فقط نقش و نه چیز دیگر. نشانی‌ها محور دیگری‌اند و فراخوانی‌های خودشان را دارند.

نمونه

نیازمند members:write است. roleId تنها فیلد است و الزامی است. این فراخوانی وضعیتی را که می‌خواهد نام می‌برد نه تغییری را که باید اعمال شود، پس فرستادن دوبارهٔ آن به همان شخص با همان نقش می‌رسد.

curl
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‌پذیر نیستند، و این حذف عمدی است: آن‌ها مجموعه‌ای با سطح دسترسی به ازای هر عضو هستند، و یک PATCH که آرایه‌ای با خود بیاورد ناچار بود معنای جایگزینی کامل بدهد، که هر بار کلاینتی فهرستی کهنه بفرستد یک لغو دسترسی انبوه و بی‌صداست. دو فراخوانی نشانی یکی‌یکی می‌افزایند و برمی‌دارند، پس آنچه رخ داده همیشه همان است که خواسته شده.

این همچنین راهی است که دارندهٔ دسترسی قدیمی از حالت implied بیرون می‌آید: او سطر عضو ندارد، این فراخوانی یکی را upsert می‌کند، و از آن پس مجوزهایش همانی است که کسی برگزیده نه آنچه دسترسی نشانی‌اش اتفاقی استنباط می‌کرد. در پاسخ بالا ببینید که implied به false برمی‌گردد و createdAt پدیدار می‌شود. هیچ‌چیز دربارهٔ نشانی‌های او تغییر نمی‌کند.

نقش owner را نمی‌توان واگذار کرد (role_immutable، یک 409) هر چه فراخوان‌کننده در دست داشته باشد. مالک‌کردن کسی انتقال فضای کاری است، که پیامدهای دیگری دارد و روی این API وجود ندارد.

نقش تازه‌اش در درخواست بعدی او اثر می‌کند، و در درخواست بعدی هر کلید API که سقفش همان نقش است.