Pāriet uz dokumentāciju
API

Piešķirt un atsaukt adresi

Otra ass: kurām adresēm viens cilvēks drīkst piekļūt un kādā līmenī.

POSTapi.openemail.uk/members/{userId}/addresses

Izpilda jebkuru no 2 izsaukumiem šajā lapā pret jūsu darbvietu, ar jūsu paša atslēgu.

POST /members/{userId}/addresses

Otra ass: kurām adresēm viens cilvēks drīkst piekļūt un kādā līmenī.

Piešķīrums nav loma

access ir vecākā vārdnīca atsevišķām adresēm, un tā ar nodomu nepārklājas ar atļauju nosaukumiem: member lasa adresi un sūta kā tā, bet viewer to tikai lasa. Tas neko nepasaka par to, vai cilvēks vispār drīkst sūtīt — to nosaka viņa loma —, un abiem jāatļauj sūtīšana, pirms tā notiek.

Viņa lomaViņa piešķīrums adresei billing@Vai viņš drīkst sūtīt kā billing@
ir `emails:send`memberJā.
ir `emails:send`viewerNē, piešķīrums to atsaka.
nav `emails:send`memberNē, loma to atsaka.
ir `emails:send`nekāda piešķīruma vispārNē, adrese nekad nenonāk sarakstā, pret kuru tiek pārbaudīts sūtījums.

Lomas piešķiršana cilvēkam nedod viņam nevienu adresi. Dalībnieks ar lomu un bez piešķīrumiem atver TUKŠU pastkasti, nevis visu pārējo cilvēku pastu, un tā ir pareizā kļūme, kamēr vēl izlemjat, ko viņam vajadzētu redzēt.

Piešķirt adresi

Nepieciešams members:write. POST /members/{userId}/addresses ar { addressId, access }; access noklusējums ir member. Atgriež visu dalībnieku tādu, kāds viņš tagad ir.

curl
curl -X POST "$OE/members/nQ8vBz1aRd4tYwKx7fQ2mN8vBz1aRd4t/addresses" -H "$AUTH" \    -H "Content-Type: application/json" \    -d '{ "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8", "access": "viewer" }'
Atbilde
{    "object": "member",    "userId": "nQ8vBz1aRd4tYwKx7fQ2mN8vBz1aRd4t",    "email": "[email protected]",    "name": "Sam Okonjo",    "image": null,    "role": {      "id": "role_2b81de079c1f0a4b7e05d386",      "name": "Support",      "builtin": null    },    "implied": false,    "permissions": ["emails:send", "emails:read", "threads:read", "threads:write"],    "addresses": [      {        "addressId": "2b81de07-9c1f-4a4b-8e05-d3862c1f0a44",        "address": "[email protected]",        "access": "member"      },      {        "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8",        "address": "[email protected]",        "access": "viewer"      }    ],    "createdAt": "2026-08-12T14:20:00.000Z"  }

POST uz apakškolekcijas, nevis PUT uz pāra, jo tas jebkurā gadījumā ir upsert, un rindas id izsaucējs nekad nenosauc. Atkārtots POST ar citu access ir veids, kā viewer kļūst par member: uz katru (adrese, persona) pāri ir viena rinda, tāpēc otrs izsaukums maina līmeni, nevis pievieno otru piešķīrumu. Tas arī padara šo par reto POST, ko ir droši atkārtot.

Ierobežots ar members:write, nevis ar adreses īpašumtiesībām — ar to šis atšķiras no vecākā piešķīrumu ceļa domēnu maršrutētājā. Īpašumtiesības ir pareizā robeža cilvēkam, kurš domēnu ielika, un nepareizā administratoram, kuram nepieder nekas un kurš pārvalda darbvietas piekļuvi īpašnieka vārdā. Abi ieraksta to pašu rindu.

Atgriežas viss dalībnieks, nevis tikai piešķīrums, lai rindu ekrānā varētu pārzīmēt bez otra pieprasījuma un lai atbilde lasītos vienādi neatkarīgi no tā, vai piešķīrums bija jauns vai labojums.

Adrese, kas nepieder šai darbvietai, ir member_not_found, 422, ar param: "addressId". Atslēga var izdalīt tikai adreses, kas pieder darbvietai, kurai tā izdota.

Piešķiršana darbvietas ĪPAŠNIEKAM ir member_is_owner, 422. Viņam jau pieder katra tās adrese, tāpēc izsaukums neko nevarētu pievienot.

Atsaukt adresi

Nepieciešams members:write. DELETE /members/{userId}/addresses/{addressId}. Atgriež dalībnieku bez šīs adreses.

curl
curl -X DELETE \    "$OE/members/nQ8vBz1aRd4tYwKx7fQ2mN8vBz1aRd4t/addresses/c40a95f2-1cc6-4d31-82a8-9e075d31c2a8" \    -H "$AUTH"
Atbilde
{    "object": "member",    "userId": "nQ8vBz1aRd4tYwKx7fQ2mN8vBz1aRd4t",    "email": "[email protected]",    "name": "Sam Okonjo",    "image": null,    "role": {      "id": "role_2b81de079c1f0a4b7e05d386",      "name": "Support",      "builtin": null    },    "implied": false,    "permissions": ["emails:send", "emails:read", "threads:read", "threads:write"],    "addresses": [      {        "addressId": "2b81de07-9c1f-4a4b-8e05-d3862c1f0a44",        "address": "[email protected]",        "access": "member"      }    ],    "createdAt": "2026-08-12T14:20:00.000Z"  }

Šaurā atsaukšana un tā, pēc kuras ķerties, kad kāds pāriet uz citu komandu: viņš patur savu lomu un pārējās adreses un pārstāj redzēt šo.

Adrese, kas nepieder šai darbvietai, tiek atteikta, nevis klusi ignorēta. Pretējā gadījumā drukas kļūda id ziņotu par veiksmīgu atsaukšanu, kas nekad nenotika, un tieši šo kļūmi šis galapunkts pastāv, lai novērstu.

Atgriežas dalībnieks, nevis kapakmens, jo interesantā atbilde ir tā, kam viņš joprojām var piekļūt. { deleted: true } šeit liktu klientam to izrēķināt ar atņemšanu.

Lai atņemtu visu uzreiz, DELETE /members/{userId} noņem lomu un visus piešķīrumus kopā un ziņo, cik to bija.