Tagok listázása
Mindenki a munkaterületen, az egyes szerepkörök, és a kinek-kinek megadott címek.
A valódi hívást futtatja le a munkaterületén, a saját kulcsával.
GET /members
Mindenki a munkaterületen, az egyes szerepkörök, és a kinek-kinek megadott címek.
Egy tag két hozzáférés, nem egy
export OE=https://api.openemail.ukexport AUTH="Authorization: Bearer $OPENEMAIL_API_KEY"A role azt mondja meg, mit TEHETNEK: egy sor, egy szerepkör, ugyanaz az objektum, amelyet a /roles leír. Az addresses azt, MIN tehetik: címenként egy bejegyzés, mindegyik saját access értékkel. A kliens nem vonhatja össze őket: egy emails:send jogosultságú szerepkör üres addresses tömbbel olyasvalaki, aki semmiről nem küldhet, és egy viewer szerepkör alatti teli addresses tömb ugyancsak olyasvalaki, aki semmiről nem küldhet. A küldési útvonal mindkettőt ellenőrzi, és egy csak az egyiket mutató képernyő magabiztosan a rossz elutasítást fogja megmagyarázni.
A címsorokban access szerepel ott, ahol a tárolt oszlop neve role, és az átnevezés a lényeg, nem rendrakás: ennek az objektumnak már van egy egészen mást jelentő role mezője, és két role egy beágyazási szinttel arrébb, két különböző szókészletből származó értékekkel, egy hiba, amely az első gyors olvasóra vár. Az access értéke member, amely olvassa a címet és a nevében küld, vagy viewer, amely csak olvassa.
Az implied: true azt jelenti, hogy EZT A SZEREPKÖRT SENKI NEM VÁLASZTOTTA. A megosztás jóval a szerepkörök előtt jelent meg, így a legtöbb postafiók-hozzáféréssel rendelkező embernek címhozzáférései vannak, tagsora viszont egyáltalán nincs; ahelyett, hogy egy utólagos feltöltésig megtagadná tőlük a leveleiket, a szolgáltatás a legszélesebb hozzáférésükből kikövetkeztet egy beépített szerepkört, és null role.id értékkel jelenti. Ezt „hozzáférésből következő”-ként jelenítsd meg, ne olyan szerepkörként, amelyet valaki kiválasztott. Amíg egy PATCH a következtetést döntéssé nem alakítja, a címhozzáférésük bővítése csendben azt is bővíti, mit tehetnek.
A TULAJDONOS az ELSŐ sor, isOwner: true jelöléssel és owner értékű role.builtin-nel. Ő az a fiók, amelyhez a munkaterület kötve van, definíció szerint minden jogosultsággal rendelkezik, és a POST, PATCH és DELETE egyaránt member_is_owner kóddal utasítja el. Így egy meg nem osztott munkaterület egy tagot jelez, nem nullát. A helyek számolásakor zárd ki az isOwner sort.
Példa
members:read szükséges. Elöl a tulajdonos, utána mindenki más e-mail cím szerint, nem a csatlakozás ideje szerint, mert ezt a listát egy személy megtalálására olvassák, nem a változások áttekintésére.
curl "$OE/members" -H "$AUTH"{ "object": "list", "data": [ { "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", "labels:read", "labels:write", "contacts:read" ], "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" }, { "object": "member", "userId": "7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a", "email": "[email protected]", "name": null, "image": null, "role": { "id": null, "name": "Viewer", "builtin": "viewer" }, "implied": true, "permissions": [ "emails:read", "drafts:read", "threads:read", "labels:read", "contacts:read", "calendar:read", "templates:read", "rules:read", "connections:read", "settings:read" ], "addresses": [ { "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8", "address": "[email protected]", "access": "viewer" } ], "createdAt": null } ], "hasMore": false, "nextCursor": null}Két csoport egy listában, és ennek így kell lennie: valakinek lehet szerepköre cím nélkül, és valakinek lehet címe szerepkörsor nélkül. Csak az átfedést listázni mindkettőt elrejtené, és a legtöbb munkaterületen a második csoport a nagyobb.
A createdAt null annál, akinek vannak hozzáférései, de soha nem íródott tagsora, ugyanazoknál, akiknél az implied true. Azt jelzi, mikor kaptak SZEREPKÖRT, nem azt, mikor osztottak meg velük először egy címet.
A permissions a lapos, feloldott lista, nem booleanok halmaza. Egy kliens, amely azt kérdezi, „benne van-e a templates:write”, nem maradhat le a szókészlettől; egy { canEditTemplates: true } értéket kapó kliens csendben lemaradhat.
Cursor nélküli, a szabványos borítékkal. Egy munkaterület tagsága attól függ, hány emberrel osztotta meg ténylegesen a tulajdonosa, és ennek lapozása csak szertartás lenne valami előtt, amit a kliens egyszer lekér és egészben megjelenít.