* Remove auto adding users to an org * Update tests * Fix tests * fix: Update organization invitation E2E tests to not expect auto-accept before signup - Changed isMemberShipAccepted expectations from true to false before signup - Users with emails matching orgAutoAcceptEmail are no longer auto-accepted - They must explicitly accept the invitation after signup - Fixed lint warnings for unused parameters Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * fix: Update E2E tests to expect pending membership after signup without auto-accept Since auto-accept functionality was removed, users with emails matching orgAutoAcceptEmail are no longer automatically accepted into organizations after signup. They remain in pending state until explicitly accepted. Updated assertions in: - 'nonexisting user is invited to Org' test - 'nonexisting user is invited to a team inside organization' test Both tests now correctly expect isMemberShipAccepted: false after signup. Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Restore `verify-email` and tests from `main` * Add `orgAutoJoinOnSignup` to `organizationSettings` * Update `OrganizationRepository.findUniqueNonPlatformOrgsByMatchingAutoAcceptEmail` to find orgs where `orgAutoJoinOnSignup` is true * `organization.update` lint fix * `organization.update` to handle `orgAutoJoinOnSignup` * Create toggle for `orgAutoJoinOnSignup` * test: Add comprehensive tests for orgAutoJoinOnSignup functionality - Update existing test to expect null instead of error when multiple orgs match - Add test for when orgAutoJoinOnSignup is false (should return null) - Add test for when orgAutoJoinOnSignup is true (should return org) - Add test for default behavior (orgAutoJoinOnSignup defaults to true) These tests verify that the new orgAutoJoinOnSignup setting correctly controls whether users are automatically added to organizations during email verification. Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Type fix * e2e: invited users should be accepted after signup (address cubic r2511916791) Reverted post-signup isMemberShipAccepted assertions from false to true for explicit invite scenarios. When users are explicitly invited to an org/team and complete signup via invite link, their membership should be accepted. This is distinct from auto-join by domain (controlled by orgAutoJoinOnSignup), which only affects users who sign up without an invite but match the org's email domain. Backend sets membership.accepted = true on invite completion in: packages/features/auth/signup/utils/createOrUpdateMemberships.ts:61,67,77,83 Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Fix API V2 build --------- Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
"use client";
|
|
|
|
import { useState } from "react";
|
|
|
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
|
import { trpc } from "@calcom/trpc";
|
|
import { SettingsToggle } from "@calcom/ui/components/form";
|
|
import { showToast } from "@calcom/ui/components/toast";
|
|
|
|
interface IOrgAutoJoinSettingProps {
|
|
orgId: number;
|
|
orgAutoJoinEnabled: boolean;
|
|
emailDomain: string;
|
|
}
|
|
|
|
const OrgAutoJoinSetting = (props: IOrgAutoJoinSettingProps) => {
|
|
const utils = trpc.useUtils();
|
|
const [isEnabled, setIsEnabled] = useState(props.orgAutoJoinEnabled);
|
|
const { t } = useLocale();
|
|
|
|
const mutation = trpc.viewer.organizations.update.useMutation({
|
|
onSuccess: async () => {
|
|
showToast(t("your_org_updated_successfully"), "success");
|
|
},
|
|
onError: () => {
|
|
showToast(t("error_updating_settings"), "error");
|
|
},
|
|
onSettled: () => {
|
|
utils.viewer.organizations.listCurrent.invalidate();
|
|
},
|
|
});
|
|
|
|
return (
|
|
<SettingsToggle
|
|
toggleSwitchAtTheEnd={true}
|
|
checked={isEnabled}
|
|
title={t("org_auto_join_title", { emailDomain: props.emailDomain })}
|
|
labelClassName="text-sm"
|
|
description={t("org_auto_join_description")}
|
|
data-testid="make-team-private-check"
|
|
onCheckedChange={(checked) => {
|
|
mutation.mutate({
|
|
orgAutoJoinOnSignup: checked,
|
|
});
|
|
setIsEnabled(checked);
|
|
}}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default OrgAutoJoinSetting;
|