Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion packages/clerk-js/src/core/resources/Organization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,17 @@ export class Organization extends BaseResource implements OrganizationResource {
getDomains = async (
getDomainParams?: GetDomainsParams,
): Promise<ClerkPaginatedResponse<OrganizationDomainResource>> => {
const { enrollmentMode, ...rest } = getDomainParams || {};
const search = convertPageToOffsetSearchParams(rest);
if (enrollmentMode) {
search.set('enrollment_mode', enrollmentMode);
}

return await BaseResource._fetch(
{
path: `/organizations/${this.id}/domains`,
method: 'GET',
search: convertPageToOffsetSearchParams(getDomainParams),
search,
},
{
forceUpdateClient: true,
Expand Down
53 changes: 47 additions & 6 deletions packages/clerk-js/src/core/resources/OrganizationDomain.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {
AttemptAffiliationVerificationParams,
OrganizationDomainJSON,
OrganizationDomainOwnershipVerification,
OrganizationDomainResource,
OrganizationDomainVerification,
OrganizationEnrollmentMode,
Expand All @@ -17,6 +18,8 @@ export class OrganizationDomain extends BaseResource implements OrganizationDoma
organizationId!: string;
enrollmentMode!: OrganizationEnrollmentMode;
verification!: OrganizationDomainVerification | null;
affiliationVerification!: OrganizationDomainVerification | null;
ownershipVerification!: OrganizationDomainOwnershipVerification | null;
affiliationEmailAddress!: string | null;
createdAt!: Date;
updatedAt!: Date;
Expand Down Expand Up @@ -59,6 +62,20 @@ export class OrganizationDomain extends BaseResource implements OrganizationDoma
});
};

prepareOwnershipVerification = async (): Promise<OrganizationDomainResource> => {
return this._basePost({
path: `/organizations/${this.organizationId}/domains/${this.id}/prepare_ownership_verification`,
method: 'POST',
});
};

attemptOwnershipVerification = async (): Promise<OrganizationDomainResource> => {
return this._basePost({
path: `/organizations/${this.organizationId}/domains/${this.id}/attempt_ownership_verification`,
method: 'POST',
});
};

updateEnrollmentMode = (params: UpdateEnrollmentModeParams): Promise<OrganizationDomainResource> => {
return this._basePost({
path: `/organizations/${this.organizationId}/domains/${this.id}/update_enrollment_mode`,
Expand All @@ -81,16 +98,40 @@ export class OrganizationDomain extends BaseResource implements OrganizationDoma
this.affiliationEmailAddress = data.affiliation_email_address;
this.totalPendingSuggestions = data.total_pending_suggestions;
this.totalPendingInvitations = data.total_pending_invitations;
if (data.verification) {
this.verification = {
status: data.verification.status,
strategy: data.verification.strategy,
attempts: data.verification.attempts,
expiresAt: unixEpochToDate(data.verification.expires_at),

const affiliationVerificationJSON = data.affiliation_verification ?? data.verification;
if (affiliationVerificationJSON) {
const affiliationVerification: OrganizationDomainVerification = {
status: affiliationVerificationJSON.status,
strategy: affiliationVerificationJSON.strategy,
attempts: affiliationVerificationJSON.attempts,
expiresAt: unixEpochToDate(affiliationVerificationJSON.expires_at),
};
this.affiliationVerification = affiliationVerification;
// Deprecated alias, kept in sync for backwards compatibility.
this.verification = affiliationVerification;
} else {
this.affiliationVerification = null;
this.verification = null;
}

if (data.ownership_verification) {
this.ownershipVerification = {
status: data.ownership_verification.status,
strategy: data.ownership_verification.strategy,
attempts: data.ownership_verification.attempts,
expiresAt: data.ownership_verification.expire_at
? unixEpochToDate(data.ownership_verification.expire_at)
: null,
verifiedAt: data.ownership_verification.verified_at
? unixEpochToDate(data.ownership_verification.verified_at)
: null,
txtRecordName: data.ownership_verification.txt_record_name ?? null,
txtRecordValue: data.ownership_verification.txt_record_value ?? null,
};
} else {
this.ownershipVerification = null;
}
}
return this;
}
Expand Down
38 changes: 17 additions & 21 deletions packages/localizations/src/ar-SA.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,29 +196,25 @@ export const arSA: LocalizationResource = {
},
warning: 'بمجرد اختيار المزود لا يمكنك التغيير مرة أخرى حتى انتهاء التكوين',
},
verifyEmailDomainStep: {
title: 'التحقق من البريد الإلكتروني',
subtitle: 'تحقق من عنوان البريد الإلكتروني الذي تريد تفعيل اتصال المؤسسة عليه.',
addEmailAddress: {
formTitle: 'نحتاج إلى بريدك الإلكتروني',
formSubtitle: 'للبدء، نحتاج إلى عنوان بريدك الإلكتروني',
inputPlaceholder: 'name@company.com',
inputLabel: 'عنوان البريد الإلكتروني',
},
emailCode: {
formTitle: 'تحقق من عنوان بريدك الإلكتروني',
formSubtitle: 'أدخل رمز التحقق المرسل إلى {{identifier}}',
resendButton: 'لم تتلقَّ الرمز؟ إعادة الإرسال',
verified: {
title: 'لقد تلقينا بريدك الإلكتروني',
subtitle: 'لقد تحققت من عنوان بريدك الإلكتروني التالي',
inputLabel: 'عنوان البريد الإلكتروني الذي تم التحقق منه',
verifyDomainsStep: {
title: 'التحقق من النطاق',
subtitle: 'حدد النطاق وتحقق منه لإعداد الدخول الموحّد (SSO).',
formFieldLabel__domain: 'النطاقات',
formFieldInputPlaceholder__domain: 'اكتب نطاقك هنا وانقر على إضافة للبدء',
formButtonPrimary__add: 'إضافة',
txtRecordInstructions: {
paragraph1: 'أضف سجل TXT هذا إلى موفّر DNS الخاص بك.',
paragraph2:
'سنتحقق تلقائيًا بمجرد أن يصبح السجل نشطًا. عادةً ما يستغرق ذلك أقل من دقيقة، رغم أن تحديث سجل TXT موجود قد يستغرق وقتًا أطول قليلاً.',
},
txtRecordTable: {
columns: {
domain: 'النطاق',
type: 'النوع',
hostName: 'المضيف / الاسم',
value: 'القيمة',
},
},
domainTaken: {
title: 'هذا النطاق ({{domain}}) لديه بالفعل اتصال SSO',
subtitle: 'تواصل مع مسؤول التطبيق للحصول على الوصول من خلال الاتصال الحالي.',
},
},
},
createOrganization: {
Expand Down
38 changes: 17 additions & 21 deletions packages/localizations/src/be-BY.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,29 +196,25 @@ export const beBY: LocalizationResource = {
},
warning: 'Пасля выбару правайдэра вы не зможаце змяніць яго, пакуль не скончыце канфігурацыю',
},
verifyEmailDomainStep: {
title: 'Пацвердзіць адрас электроннай пошты',
subtitle: 'Пацвердзіце адрас электроннай пошты, на якім вы хочаце ўключыць карпаратыўнае падключэнне.',
addEmailAddress: {
formTitle: 'Нам патрэбна ваша пошта',
formSubtitle: 'Каб пачаць, нам спатрэбіцца ваш адрас электроннай пошты',
inputPlaceholder: 'name@company.com',
inputLabel: 'Адрас электроннай пошты',
},
emailCode: {
formTitle: 'Пацвердзіце ваш адрас электроннай пошты',
formSubtitle: 'Увядзіце код пацверджання, дасланы на {{identifier}}',
resendButton: 'Не атрымалі код? Адправіць паўторна',
verified: {
title: 'Мы атрымалі вашу пошту',
subtitle: 'Вы пацвердзілі свой адрас электроннай пошты з наступнай поштай',
inputLabel: 'Пацверджаны адрас электроннай пошты',
verifyDomainsStep: {
title: 'Пацвердзіць дамен',
subtitle: 'Укажыце і пацвердзіце дамен для наладжвання SSO.',
formFieldLabel__domain: 'Дамены',
formFieldInputPlaceholder__domain: 'Увядзіце свой дамен тут і націсніце «Дадаць», каб пачаць',
formButtonPrimary__add: 'Дадаць',
txtRecordInstructions: {
paragraph1: 'Дадайце гэты TXT-запіс да вашага DNS-правайдара.',
paragraph2:
'Мы праверым аўтаматычна, як толькі запіс стане актыўным. Звычайна гэта займае менш за хвіліну, хаця абнаўленне існуючага TXT-запісу можа заняць крыху больш часу.',
},
txtRecordTable: {
columns: {
domain: 'Дамен',
type: 'Тып',
hostName: 'Хост / Імя',
value: 'Значэнне',
},
},
domainTaken: {
title: 'Гэты дамен ({{domain}}) ужо мае SSO-падключэнне',
subtitle: 'Звяжыцеся з адміністратарам прыкладання, каб атрымаць доступ праз існуючае падключэнне.',
},
},
},
createOrganization: {
Expand Down
38 changes: 17 additions & 21 deletions packages/localizations/src/bg-BG.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,29 +197,25 @@ export const bgBG: LocalizationResource = {
},
warning: 'След като изберете доставчик, не можете да го промените, докато конфигурацията не приключи',
},
verifyEmailDomainStep: {
title: 'Потвърди имейл адреса',
subtitle: 'Потвърдете имейл адреса, на който искате да активирате корпоративната връзка.',
addEmailAddress: {
formTitle: 'Нуждаем се от вашия имейл',
formSubtitle: 'За да започнем, ще ни е необходим вашият имейл адрес',
inputPlaceholder: 'name@company.com',
inputLabel: 'Имейл адрес',
},
emailCode: {
formTitle: 'Потвърдете имейл адреса си',
formSubtitle: 'Въведете кода за потвърждение, изпратен на {{identifier}}',
resendButton: 'Не получихте код? Изпрати отново',
verified: {
title: 'Получихме имейла ви',
subtitle: 'Потвърдихте имейл адреса си със следния имейл',
inputLabel: 'Потвърден имейл адрес',
verifyDomainsStep: {
title: 'Потвърди домейна',
subtitle: 'Посочете и потвърдете домейна, за който да конфигурирате SSO.',
formFieldLabel__domain: 'Домейни',
formFieldInputPlaceholder__domain: 'Въведете домейна си тук и щракнете върху добавяне, за да започнете',
formButtonPrimary__add: 'Добави',
txtRecordInstructions: {
paragraph1: 'Добавете този TXT запис при своя DNS доставчик.',
paragraph2:
'Ще го потвърдим автоматично, щом записът се активира. Това обикновено отнема под минута, въпреки че актуализирането на съществуващ TXT запис може да отнеме малко повече време.',
},
txtRecordTable: {
columns: {
domain: 'Домейн',
type: 'Тип',
hostName: 'Хост / Име',
value: 'Стойност',
},
},
domainTaken: {
title: 'Този домейн ({{domain}}) вече има SSO връзка',
subtitle: 'Свържете се с администратора на приложението, за да получите достъп чрез съществуващата връзка.',
},
},
},
createOrganization: {
Expand Down
38 changes: 17 additions & 21 deletions packages/localizations/src/bn-IN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,29 +202,25 @@ export const bnIN: LocalizationResource = {
},
warning: 'একবার প্রদানকারী নির্বাচন করার পরে, কনফিগারেশন শেষ না হওয়া পর্যন্ত আপনি আবার পরিবর্তন করতে পারবেন না',
},
verifyEmailDomainStep: {
title: 'ইমেইল ঠিকানা যাচাই করুন',
subtitle: 'যে ইমেইল ঠিকানায় আপনি এন্টারপ্রাইজ সংযোগ সক্রিয় করতে চান তা যাচাই করুন।',
addEmailAddress: {
formTitle: 'আমাদের আপনার ইমেইল প্রয়োজন',
formSubtitle: 'শুরু করতে আমাদের আপনার ইমেইল ঠিকানা প্রয়োজন হবে',
inputPlaceholder: 'name@company.com',
inputLabel: 'ইমেইল ঠিকানা',
},
emailCode: {
formTitle: 'আপনার ইমেইল ঠিকানা যাচাই করুন',
formSubtitle: '{{identifier}} এ পাঠানো যাচাইকরণ কোড লিখুন',
resendButton: 'কোড পাননি? পুনরায় পাঠান',
verified: {
title: 'আমরা আপনার ইমেইল পেয়েছি',
subtitle: 'আপনি নিম্নলিখিত ইমেইল দিয়ে আপনার ইমেইল ঠিকানা যাচাই করেছেন',
inputLabel: 'যাচাইকৃত ইমেইল ঠিকানা',
verifyDomainsStep: {
title: 'ডোমেইন যাচাই করুন',
subtitle: 'SSO কনফিগার করার জন্য ডোমেইনটি নির্দিষ্ট করুন এবং যাচাই করুন।',
formFieldLabel__domain: 'ডোমেইন',
formFieldInputPlaceholder__domain: 'আপনার ডোমেইন এখানে টাইপ করুন এবং শুরু করতে যোগ করুন-এ ক্লিক করুন',
formButtonPrimary__add: 'যোগ করুন',
txtRecordInstructions: {
paragraph1: 'এই TXT রেকর্ডটি আপনার DNS প্রদানকারীতে যোগ করুন।',
paragraph2:
'রেকর্ডটি সক্রিয় হলে আমরা স্বয়ংক্রিয়ভাবে যাচাই করব। এটি সাধারণত এক মিনিটেরও কম সময় নেয়, তবে কোনো বিদ্যমান TXT রেকর্ড আপডেট করতে কিছুটা বেশি সময় লাগতে পারে।',
},
txtRecordTable: {
columns: {
domain: 'ডোমেইন',
type: 'ধরন',
hostName: 'হোস্ট / নাম',
value: 'মান',
},
},
domainTaken: {
title: 'এই ডোমেইনে ({{domain}}) ইতিমধ্যে একটি SSO সংযোগ রয়েছে',
subtitle: 'বিদ্যমান সংযোগের মাধ্যমে অ্যাক্সেস পেতে অ্যাপ্লিকেশন প্রশাসকের সাথে যোগাযোগ করুন।',
},
},
},
createOrganization: {
Expand Down
38 changes: 17 additions & 21 deletions packages/localizations/src/ca-ES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,29 +203,25 @@ export const caES: LocalizationResource = {
},
warning: 'Un cop seleccionat un proveïdor no podreu canviar-lo fins que la configuració hagi finalitzat',
},
verifyEmailDomainStep: {
title: 'Verifica el correu electrònic',
subtitle: "Verifica l'adreça de correu electrònic on vols habilitar la connexió empresarial.",
addEmailAddress: {
formTitle: 'Necessitem el teu correu',
formSubtitle: 'Per començar necessitem la teva adreça de correu electrònic',
inputPlaceholder: 'name@company.com',
inputLabel: 'Adreça de correu electrònic',
},
emailCode: {
formTitle: "Verifica l'adreça de correu electrònic",
formSubtitle: 'Introdueix el codi de verificació enviat a {{identifier}}',
resendButton: 'No has rebut el codi? Reenvia',
verified: {
title: 'Hem rebut el teu correu',
subtitle: 'Has verificat la teva adreça de correu electrònic amb el següent correu',
inputLabel: 'Adreça de correu electrònic verificada',
verifyDomainsStep: {
title: 'Verifica el domini',
subtitle: "Especifica i verifica el domini per configurar l'SSO.",
formFieldLabel__domain: 'Dominis',
formFieldInputPlaceholder__domain: 'Escriu aquí el teu domini i fes clic a Afegeix per començar',
formButtonPrimary__add: 'Afegeix',
txtRecordInstructions: {
paragraph1: 'Afegeix aquest registre TXT al teu proveïdor de DNS.',
paragraph2:
"Ho verificarem automàticament un cop el registre estigui actiu. Normalment triga menys d'un minut, tot i que actualitzar un registre TXT existent pot trigar una mica més.",
},
txtRecordTable: {
columns: {
domain: 'Domini',
type: 'Tipus',
hostName: 'Amfitrió / Nom',
value: 'Valor',
},
},
domainTaken: {
title: 'Aquest domini ({{domain}}) ja té una connexió SSO',
subtitle: "Contacta amb l'administrador de l'aplicació per obtenir accés a través de la connexió existent.",
},
},
},
createOrganization: {
Expand Down
Loading
Loading