Přejít na dokumentaci
SDK

Členové

`members.list`, `get`, `add`, `update`, `remove`, `grantAddress` a `revokeAddress`.

Všechny metody

members.ts
const people = await openemail.members.list()const member = await openemail.members.get(people[0]!.userId) const sam = await openemail.members.add({  email: '[email protected]',  roleId: support.id,  addressIds: ['2b81de07-…'],  access: 'member',}) await openemail.members.update(sam.userId, { roleId: viewerRoleId }) await openemail.members.grantAddress(sam.userId, {  addressId: 'c40a95f2-…',  access: 'viewer',})await openemail.members.revokeAddress(sam.userId, 'c40a95f2-…') await openemail.members.remove(sam.userId)

Na osobu dvě oprávnění a nesmí se slučovat do jednoho. role je to, co daný člověk smí dělat; addresses je to, nad čím to smí dělat. Musí se shodnout obě: role s emails:send a s access: "viewer" na invoices@ je někdo, kdo smí odesílat poštu, ale ne z této adresy.

Každá metoda přijímá userId, ne e-mail. Jedinou výjimkou je add a je v ní i důvod té výjimky: ten, kdo je volá, má e-mailovou adresu a žádné id uživatele ještě nemá, což je celá první polovina toho, co to volání dělá.

implied: true znamená, že roli nikdo nezvolil. Dotyčný drží adresy a žádný řádek s rolí, takže se role odvodila z nejširšího oprávnění, které má. Berte to jako „zatím nerozhodnuto“; z odvození dělá rozhodnutí update. Do té doby rozšíření jeho přístupu k adresám tiše rozšiřuje i to, co smí dělat.

Vlastník pracovního prostoru je prvním řádkem, označeným isOwner: true, přičemž add, update i remove jej stejně odmítnou s member_is_owner. Nesdílený pracovní prostor hlásí jednoho člena, ne nula, takže při počítání míst isOwner vynechte.

remove bere obě osy – roli A všechna oprávnění k adresám v tomto pracovním prostoru – a hlásí addressesRevoked. revokeAddress je to užší volání, pro někoho, kdo přešel do jiného týmu, ne pro někoho, kdo odešel.

Parametry

emailstringpovinné
Koho pozvat, s ořezanými mezerami a převedené na malá písmena. Účet zatím mít nemusí: pozvánka se pošle komukoli a role i oprávnění dosednou, až ji přijme. Někdo, kdo už v pracovním prostoru je, je `member_is_owner` (422).
roleIdstringpovinné
Role, kterou bude držet, 1 až 128 znaků, a musí to být role tohoto pracovního prostoru: neznámé id je `role_not_found` (404). Roli vlastníka rozdávat nelze a vrací se `role_immutable` (409), protože udělat z někoho vlastníka je převod pracovního prostoru a pro to tu žádné volání není.
addressIdsstring[]
Adresy, které se předají ve stejném volání, nejvýše 64 id o 1 až 128 znacích; id, které v tomto pracovním prostoru není adresou, se odmítne. Nejprve se zapíše role a oprávnění následují jedno po druhém, takže špatné id zanechá člena vytvořeného s menším počtem adres, než jste požadovali. Nápravou je odeslat totéž tělo znovu, protože oba zápisy fungují jako upsert.
access'member' | 'viewer'
Co smí dělat s každým id v `addressIds`: `member` adresu čte a odesílá pod ní, `viewer` ji pouze čte. Výchozí je `member`, úroveň, kterou konzole i starší cesta sdílení vždy používaly, takže totéž volání znamená totéž ze skriptu i z obrazovky; kombinaci udělíte tak, že pro ty odlišné zavoláte potom `grantAddress`.

Odpověď

object'member'
Vždy `member`. Odebrání odpovídá stejnou hodnotou, dále `userId` dotyčného, `deleted: true` a `addressesRevoked`, a žádným z ostatních polí níže.
userIdstring
Id jeho účtu a identifikátor, který v cestě přijímá každé další volání nad členy: get, update, remove i obě volání nad adresami. Přidání někoho je jediné volání, které místo toho pracuje s e-mailem, protože ten, kdo přidává kolegu, zná jeho adresu, a ne jeho id.
emailstring
E-mail na jeho účtu, vracený tak, jak jej ten řádek ukládá. Tento zdroj jej nikdy nezapisuje a převod na malá písmena u `add` se týká adresy, kterou posíláte pro vyhledání, ne toho, co se vrátí. Za vlastníkem je seznam členů seřazen podle něj, ne podle toho, kdy se kdo připojil, protože se čte proto, aby se našel jeden člověk, ne aby bylo vidět, co se změnilo.
namestring | null
Jeho zobrazované jméno, převzaté z jeho účtu, kde je sloupec NOT NULL. Null v typu je spíš obrana než stav, který by toto API někdy produkovalo. Patří jemu, ne pracovnímu prostoru, takže nic na tomto zdroji je nastavit nemůže.
imagestring | null
Jeho avatar, převzatý z jeho účtu; null, pokud si žádný nenastavil.
role.idstring | null
Id role, kterou drží, nebo null, když ji nikdo nezvolil. Viz `implied`. Null zde je jediný případ, kdy `role` hlásí odvození, ne rozhodnutí, které někdo učinil.
role.namestring
Název role. U odvozeného člena je to název vestavěné šablony, na kterou se jeho přístup vyhodnotil, ne řádku v tomto pracovním prostoru.
role.builtin'owner' | 'admin' | 'member' | 'viewer' | 'developer' | 'billing' | null
Která vestavěná role to je, nebo null u vlastní role. `owner` se objevuje jen na vlastníkově vlastním řádku, vedle `isOwner: true`; přiřadit tuto roli komukoli je odmítnuto s `role_immutable` (409).
isOwnerboolean
True právě u jednoho řádku, u účtu, na který je pracovní prostor navázán. Dotyčný drží všechna oprávnění bez ohledu na to, co říká jeho řádek s rolí, řadí se první a `add`, `update` i `remove` jej odmítnou s `member_is_owner`. Při počítání míst jej vynechte.
impliedboolean
True, když tento člověk má oprávnění k adresám a žádný řádek člena, takže jeho role byla odvozena, ne zvolena: jakékoli oprávnění `member` se vyhodnotí na vestavěnou roli Member, jinak na Viewer. U vlastníka nikdy true. Zobrazujte to jako „odvozeno z přístupu“. Dokud PATCH z odvození neudělá rozhodnutí, rozšíření jeho přístupu k adresám tiše rozšiřuje i to, co smí dělat.
permissionsPermission[]
Oprávnění role zploštěná přímo na člena, takže jedno čtení odpoví na otázku „smí to?“ bez načítání role. U odvozeného člena pocházejí z vestavěné ŠABLONY, ne z řádku role tohoto pracovního prostoru, takže úprava vestavěné role Member nemění to, co odvozený člen drží.
addressesMemberAddress[]
Adresy, které dotyčný dostal, seřazené podle adresy, každá s vlastní úrovní přístupu. Prázdné u někoho, kdo drží roli a žádná oprávnění, což je přesně to, jak vypadá nový člen, dokud mu adresa není udělena – a je to správné selhání ve chvíli, kdy se teprve rozhodujete, co má vidět.
addresses[].addressIdstring
Id adresy a to, co přijímají `grantAddress` a `revokeAddress`. Id, které v tomto pracovním prostoru není adresou, je odmítnuto u obou, místo aby se hlásilo odebrání, ke kterému nikdy nedošlo.
addresses[].addressstring
Celá adresa, malými písmeny, složená znovu z její local-part a její domény.
addresses[].access'member' | 'viewer'
Co smí dělat s touto jednou adresou: `member` ji čte a odesílá pod ní, `viewer` ji pouze čte. Odeslání musí povolit tohle i role, takže role s `emails:send` nad oprávněním `viewer` neodešle z ničeho; uložený sloupec se jmenuje `role` a zde je přejmenován, aby jeden objekt nenesl dvě pole `role` ze dvou různých slovníků.
createdAtstring | null
Kdy byl zapsán jeho řádek člena, ISO-8601, a null, když řádek člena vůbec neexistuje. Tento null popisuje tutéž skupinu jako `implied: true`: lidi, kteří drží adresy z doby před zavedením rolí a kterým od té doby nikdo roli nedal.