mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-11 03:28:58 +00:00
feat: removed unused inviteSignup flag
This commit is contained in:
-7
@@ -6,19 +6,12 @@ export async function up(knex: Knex): Promise<void> {
|
|||||||
const isTablePresent = await knex.schema.hasTable(TableName.SuperAdmin);
|
const isTablePresent = await knex.schema.hasTable(TableName.SuperAdmin);
|
||||||
if (isTablePresent) {
|
if (isTablePresent) {
|
||||||
await knex.schema.alterTable(TableName.SuperAdmin, (t) => {
|
await knex.schema.alterTable(TableName.SuperAdmin, (t) => {
|
||||||
t.boolean("inviteOnlySignUp").defaultTo(false);
|
|
||||||
t.string("allowedSignUpDomain");
|
t.string("allowedSignUpDomain");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function down(knex: Knex): Promise<void> {
|
export async function down(knex: Knex): Promise<void> {
|
||||||
if (await knex.schema.hasColumn(TableName.SuperAdmin, "inviteOnlySignUp")) {
|
|
||||||
await knex.schema.alterTable(TableName.SuperAdmin, (t) => {
|
|
||||||
t.dropColumn("inviteOnlySignUp");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await knex.schema.hasColumn(TableName.SuperAdmin, "allowedSignUpDomain")) {
|
if (await knex.schema.hasColumn(TableName.SuperAdmin, "allowedSignUpDomain")) {
|
||||||
await knex.schema.alterTable(TableName.SuperAdmin, (t) => {
|
await knex.schema.alterTable(TableName.SuperAdmin, (t) => {
|
||||||
t.dropColumn("allowedSignUpDomain");
|
t.dropColumn("allowedSignUpDomain");
|
||||||
@@ -13,7 +13,6 @@ export const SuperAdminSchema = z.object({
|
|||||||
allowSignUp: z.boolean().default(true).nullable().optional(),
|
allowSignUp: z.boolean().default(true).nullable().optional(),
|
||||||
createdAt: z.date(),
|
createdAt: z.date(),
|
||||||
updatedAt: z.date(),
|
updatedAt: z.date(),
|
||||||
inviteOnlySignUp: z.boolean().default(false).nullable().optional(),
|
|
||||||
allowedSignUpDomain: z.string().nullable().optional()
|
allowedSignUpDomain: z.string().nullable().optional()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export async function seed(knex: Knex): Promise<void> {
|
|||||||
await knex(TableName.Users).del();
|
await knex(TableName.Users).del();
|
||||||
await knex(TableName.UserEncryptionKey).del();
|
await knex(TableName.UserEncryptionKey).del();
|
||||||
await knex(TableName.SuperAdmin).del();
|
await knex(TableName.SuperAdmin).del();
|
||||||
await knex(TableName.SuperAdmin).insert([{ initialized: true, allowSignUp: true, inviteOnlySignUp: false }]);
|
await knex(TableName.SuperAdmin).insert([{ initialized: true, allowSignUp: true }]);
|
||||||
// Inserts seed entries
|
// Inserts seed entries
|
||||||
const [user] = await knex(TableName.Users)
|
const [user] = await knex(TableName.Users)
|
||||||
.insert([
|
.insert([
|
||||||
|
|||||||
@@ -32,8 +32,7 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => {
|
|||||||
schema: {
|
schema: {
|
||||||
body: z.object({
|
body: z.object({
|
||||||
allowSignUp: z.boolean().optional(),
|
allowSignUp: z.boolean().optional(),
|
||||||
inviteOnlySignUp: z.boolean().optional(),
|
allowedSignUpDomain: z.string().optional().nullable()
|
||||||
allowedSignUpDomain: z.string().optional()
|
|
||||||
}),
|
}),
|
||||||
response: {
|
response: {
|
||||||
200: z.object({
|
200: z.object({
|
||||||
|
|||||||
@@ -187,13 +187,6 @@ export const registerSignupRouter = async (server: FastifyZodProvider) => {
|
|||||||
if (!userAgent) throw new Error("user agent header is required");
|
if (!userAgent) throw new Error("user agent header is required");
|
||||||
const appCfg = getConfig();
|
const appCfg = getConfig();
|
||||||
|
|
||||||
const serverCfg = await getServerCfg();
|
|
||||||
if (!serverCfg.allowSignUp) {
|
|
||||||
throw new BadRequestError({
|
|
||||||
message: "Sign up is disabled!"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const { user, accessToken, refreshToken } = await server.services.signup.completeAccountInvite({
|
const { user, accessToken, refreshToken } = await server.services.signup.completeAccountInvite({
|
||||||
...req.body,
|
...req.body,
|
||||||
ip: req.realIp,
|
ip: req.realIp,
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export const superAdminServiceFactory = ({
|
|||||||
|
|
||||||
const serverCfg = await serverCfgDAL.findOne({});
|
const serverCfg = await serverCfgDAL.findOne({});
|
||||||
if (serverCfg) return;
|
if (serverCfg) return;
|
||||||
const newCfg = await serverCfgDAL.create({ initialized: false, allowSignUp: true, inviteOnlySignUp: false });
|
const newCfg = await serverCfgDAL.create({ initialized: false, allowSignUp: true });
|
||||||
return newCfg;
|
return newCfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
export type TServerConfig = {
|
export type TServerConfig = {
|
||||||
initialized: boolean;
|
initialized: boolean;
|
||||||
allowSignUp: boolean;
|
allowSignUp: boolean;
|
||||||
inviteOnlySignUp: boolean;
|
allowedSignUpDomain?: string | null;
|
||||||
allowedSignUpDomain?: string;
|
|
||||||
isMigrationModeOn?: boolean;
|
isMigrationModeOn?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ export type ServerStatus = {
|
|||||||
date: string;
|
date: string;
|
||||||
message: string;
|
message: string;
|
||||||
emailConfigured: boolean;
|
emailConfigured: boolean;
|
||||||
inviteOnlySignup: boolean;
|
|
||||||
secretScanningConfigured: boolean
|
secretScanningConfigured: boolean
|
||||||
redisConfigured: boolean
|
redisConfigured: boolean
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }:
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
{!isLoading && loginError && <Error text={t("login.error-login") ?? ""} />}
|
{!isLoading && loginError && <Error text={t("login.error-login") ?? ""} />}
|
||||||
{config.allowSignUp && !config.inviteOnlySignUp ? (
|
{config.allowSignUp ? (
|
||||||
<div className="mt-6 flex flex-row text-sm text-bunker-400">
|
<div className="mt-6 flex flex-row text-sm text-bunker-400">
|
||||||
<Link href="/signup">
|
<Link href="/signup">
|
||||||
<span className="cursor-pointer duration-200 hover:text-bunker-200 hover:underline hover:decoration-primary-700 hover:underline-offset-4">
|
<span className="cursor-pointer duration-200 hover:text-bunker-200 hover:underline hover:decoration-primary-700 hover:underline-offset-4">
|
||||||
|
|||||||
@@ -28,21 +28,12 @@ enum TabSections {
|
|||||||
|
|
||||||
enum SignUpModes {
|
enum SignUpModes {
|
||||||
Disabled = "disabled",
|
Disabled = "disabled",
|
||||||
InviteOnly = "invite-only",
|
|
||||||
Anyone = "anyone"
|
Anyone = "anyone"
|
||||||
}
|
}
|
||||||
|
|
||||||
const getSignUpMode = (isSignUpEnabled: boolean, isInviteOnly: boolean) => {
|
|
||||||
if (isSignUpEnabled) {
|
|
||||||
if (isInviteOnly) return SignUpModes.InviteOnly;
|
|
||||||
return SignUpModes.Anyone;
|
|
||||||
}
|
|
||||||
return SignUpModes.Disabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
const formSchema = z.object({
|
const formSchema = z.object({
|
||||||
signUpMode: z.nativeEnum(SignUpModes),
|
signUpMode: z.nativeEnum(SignUpModes),
|
||||||
allowedSignUpDomain: z.string().optional()
|
allowedSignUpDomain: z.string().optional().nullable()
|
||||||
});
|
});
|
||||||
|
|
||||||
type TDashboardForm = z.infer<typeof formSchema>;
|
type TDashboardForm = z.infer<typeof formSchema>;
|
||||||
@@ -55,13 +46,12 @@ export const AdminDashboardPage = () => {
|
|||||||
control,
|
control,
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
watch,
|
watch,
|
||||||
getValues,
|
|
||||||
formState: { isSubmitting, isDirty }
|
formState: { isSubmitting, isDirty }
|
||||||
} = useForm<TDashboardForm>({
|
} = useForm<TDashboardForm>({
|
||||||
resolver: zodResolver(formSchema),
|
resolver: zodResolver(formSchema),
|
||||||
values: {
|
values: {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
signUpMode: getSignUpMode(config.allowSignUp, config.inviteOnlySignUp),
|
signUpMode: config.allowSignUp ? SignUpModes.Anyone : SignUpModes.Disabled,
|
||||||
allowedSignUpDomain: config.allowedSignUpDomain
|
allowedSignUpDomain: config.allowedSignUpDomain
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -91,8 +81,7 @@ export const AdminDashboardPage = () => {
|
|||||||
const { signUpMode, allowedSignUpDomain } = formData;
|
const { signUpMode, allowedSignUpDomain } = formData;
|
||||||
await updateServerConfig({
|
await updateServerConfig({
|
||||||
allowSignUp: signUpMode !== SignUpModes.Disabled,
|
allowSignUp: signUpMode !== SignUpModes.Disabled,
|
||||||
inviteOnlySignUp: signUpMode === SignUpModes.InviteOnly,
|
allowedSignUpDomain: signUpMode === SignUpModes.Anyone ? allowedSignUpDomain : null
|
||||||
allowedSignUpDomain: signUpMode === SignUpModes.Anyone ? allowedSignUpDomain : ""
|
|
||||||
});
|
});
|
||||||
createNotification({
|
createNotification({
|
||||||
text: "Successfully changed sign up setting.",
|
text: "Successfully changed sign up setting.",
|
||||||
@@ -107,7 +96,6 @@ export const AdminDashboardPage = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(isDirty,getValues());
|
|
||||||
return (
|
return (
|
||||||
<div className="container mx-auto max-w-7xl px-4 pb-12 text-white dark:[color-scheme:dark]">
|
<div className="container mx-auto max-w-7xl px-4 pb-12 text-white dark:[color-scheme:dark]">
|
||||||
<div className="mx-auto mb-6 w-full max-w-7xl pt-6">
|
<div className="mx-auto mb-6 w-full max-w-7xl pt-6">
|
||||||
@@ -152,7 +140,6 @@ export const AdminDashboardPage = () => {
|
|||||||
{...field}
|
{...field}
|
||||||
>
|
>
|
||||||
<SelectItem value={SignUpModes.Disabled}>Disabled</SelectItem>
|
<SelectItem value={SignUpModes.Disabled}>Disabled</SelectItem>
|
||||||
<SelectItem value={SignUpModes.InviteOnly}>Invite Only</SelectItem>
|
|
||||||
<SelectItem value={SignUpModes.Anyone}>Anyone</SelectItem>
|
<SelectItem value={SignUpModes.Anyone}>Anyone</SelectItem>
|
||||||
</Select>
|
</Select>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
@@ -177,6 +164,7 @@ export const AdminDashboardPage = () => {
|
|||||||
>
|
>
|
||||||
<Input
|
<Input
|
||||||
{...field}
|
{...field}
|
||||||
|
value={field.value || ""}
|
||||||
placeholder="domain.com, domain2.com"
|
placeholder="domain.com, domain2.com"
|
||||||
leftIcon={<FontAwesomeIcon icon={faAt} />}
|
leftIcon={<FontAwesomeIcon icon={faAt} />}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user