diff --git a/src/entities/RequestHandler.ts b/src/entities/RequestHandler.ts index 7ccd357..741a3e8 100644 --- a/src/entities/RequestHandler.ts +++ b/src/entities/RequestHandler.ts @@ -209,6 +209,21 @@ export class RequestHandler { return userID; } + /** + * Find user ID based on its email address, included in a POST request + * + * @param name The name of the POST field containing the email address of the user + */ + public async postUserIdFromEmail(name: string) : Promise { + const email = this.postEmail(name); + const userID = await AccountHelper.FindIDFromEmail(email); + + if(userID < 1) + this.error(404, "Email not found!"); + + return userID; + } + /** * Get a POST group ID * diff --git a/src/helpers/AccountHelper.ts b/src/helpers/AccountHelper.ts index 0175d0b..b4dd985 100644 --- a/src/helpers/AccountHelper.ts +++ b/src/helpers/AccountHelper.ts @@ -175,6 +175,24 @@ export class AccountHelper { }) > 0; } + /** + * Find user ID from its email address + * + * @param email Email address + * @returns The ID of the matching user / -1 if none found + */ + public static async FindIDFromEmail(email: string) : Promise { + const result = await DatabaseHelper.QueryRow({ + table: USER_TABLE, + where: { + mail: email, + }, + fields: ["ID"] + }); + + return result == null ? -1 : result.ID; + } + /** * Check out whether a virtual directory is available or not