Merge branch 'main' into Session-length-extension
This commit is contained in:
@@ -46,32 +46,35 @@ passport.use(new OpenIDConnectStrategy({
|
||||
|
||||
//lookup existing user
|
||||
const existing = await con.query(`SELECT id FROM members WHERE authentik_issuer = ? AND authentik_sub = ? LIMIT 1;`, [issuer, sub]);
|
||||
let memberId: number;
|
||||
let memberId: number | null = null;
|
||||
//if member exists
|
||||
if (existing.length > 0) {
|
||||
memberId = existing[0].id;
|
||||
} else {
|
||||
//otherwise: create account
|
||||
//otherwise: create account mode
|
||||
const jwt = parseJwt(jwtClaims);
|
||||
const discordID = jwt.discord.id as number;
|
||||
const discordID = jwt.discord?.id as number;
|
||||
|
||||
//check if account is available to claim
|
||||
if (discordID)
|
||||
memberId = await mapDiscordtoID(discordID);
|
||||
|
||||
if (memberId === null) {
|
||||
// create new account
|
||||
if (discordID && memberId) {
|
||||
// claim account
|
||||
console.log("Claiming account");
|
||||
const result = await con.query(
|
||||
`UPDATE members SET authentik_sub = ?, authentik_issuer = ? WHERE id = ?;`,
|
||||
[sub, issuer, memberId]
|
||||
)
|
||||
} else {
|
||||
console.log("New Account");
|
||||
// new account
|
||||
const username = sub.username;
|
||||
const result = await con.query(
|
||||
`INSERT INTO members (name, authentik_sub, authentik_issuer) VALUES (?, ?, ?)`,
|
||||
[username, sub, issuer]
|
||||
)
|
||||
memberId = Number(result.insertId);
|
||||
} else {
|
||||
// claim existing account
|
||||
const result = await con.query(
|
||||
`UPDATE members SET authentik_sub = ?, authentik_issuer = ? WHERE id = ?;`,
|
||||
[sub, issuer, memberId]
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user