forked from OpenWF/SpaceNinjaServer
improve: handle config.administratorNames being a string (#658)
This commit is contained in:
parent
f0eea818f9
commit
02f4d0e821
@ -6,11 +6,12 @@ import http from "http";
|
|||||||
import https from "https";
|
import https from "https";
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import { app } from "./app";
|
import { app } from "./app";
|
||||||
import { config } from "./services/configService";
|
import { config, validateConfig } from "./services/configService";
|
||||||
import { connectDatabase } from "@/src/services/mongoService";
|
import { connectDatabase } from "@/src/services/mongoService";
|
||||||
import { registerLogFileCreationListener } from "@/src/utils/logger";
|
import { registerLogFileCreationListener } from "@/src/utils/logger";
|
||||||
|
|
||||||
registerLogFileCreationListener();
|
registerLogFileCreationListener();
|
||||||
|
validateConfig();
|
||||||
|
|
||||||
void (async (): Promise<void> => {
|
void (async (): Promise<void> => {
|
||||||
await connectDatabase();
|
await connectDatabase();
|
||||||
|
@ -22,6 +22,7 @@ fs.watchFile(configPath, () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Object.assign(config, JSON.parse(fs.readFileSync(configPath, "utf-8")));
|
Object.assign(config, JSON.parse(fs.readFileSync(configPath, "utf-8")));
|
||||||
|
validateConfig();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -32,7 +33,7 @@ interface IConfig {
|
|||||||
httpPort?: number;
|
httpPort?: number;
|
||||||
httpsPort?: number;
|
httpsPort?: number;
|
||||||
myIrcAddresses?: string[];
|
myIrcAddresses?: string[];
|
||||||
administratorNames?: string[];
|
administratorNames?: string[] | string;
|
||||||
autoCreateAccount?: boolean;
|
autoCreateAccount?: boolean;
|
||||||
skipTutorial?: boolean;
|
skipTutorial?: boolean;
|
||||||
skipAllDialogue?: boolean;
|
skipAllDialogue?: boolean;
|
||||||
@ -61,3 +62,11 @@ export const updateConfig = async (data: string): Promise<void> => {
|
|||||||
await fsPromises.writeFile(configPath, data);
|
await fsPromises.writeFile(configPath, data);
|
||||||
Object.assign(config, JSON.parse(data));
|
Object.assign(config, JSON.parse(data));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const validateConfig = (): void => {
|
||||||
|
if (typeof config.administratorNames == "string") {
|
||||||
|
logger.warn(
|
||||||
|
`"administratorNames" should be an array; please add square brackets: ["${config.administratorNames}"]`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@ -75,5 +75,11 @@ export const getAccountIdForRequest = async (req: Request): Promise<string> => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const isAdministrator = (account: TAccountDocument): boolean => {
|
export const isAdministrator = (account: TAccountDocument): boolean => {
|
||||||
return !!config.administratorNames?.find(x => x == account.DisplayName);
|
if (!config.administratorNames) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (typeof config.administratorNames == "string") {
|
||||||
|
return config.administratorNames == account.DisplayName;
|
||||||
|
}
|
||||||
|
return !!config.administratorNames.find(x => x == account.DisplayName);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user