diff options
| author | Andrew Lee <andrew@alee14.me> | 2025-05-06 15:37:40 -0400 |
|---|---|---|
| committer | Andrew Lee <andrew@alee14.me> | 2025-05-06 15:37:40 -0400 |
| commit | 2b60e8ea732fe314ff5256f2aa33012885901581 (patch) | |
| tree | a7f0ba63891d731fcfd8000c15259554e5075cb5 | |
| parent | c1ca4c1fb14e674385dbcf96e57082a2ab3d427e (diff) | |
| download | freeso-discord-auth-2b60e8ea732fe314ff5256f2aa33012885901581.tar.gz freeso-discord-auth-2b60e8ea732fe314ff5256f2aa33012885901581.tar.bz2 freeso-discord-auth-2b60e8ea732fe314ff5256f2aa33012885901581.zip | |
Server name no longer hardcoded; Logo now configurable; Password api change
| -rw-r--r-- | index.js | 36 | ||||
| -rw-r--r-- | public/img/bnbso-logo.png | bin | 0 -> 27658 bytes | |||
| -rw-r--r-- | public/img/logo.png | bin | 27658 -> 24941 bytes | |||
| -rw-r--r-- | status.json | 3 | ||||
| -rw-r--r-- | views/dashboard.ejs | 4 | ||||
| -rw-r--r-- | views/error-login.ejs | 2 | ||||
| -rw-r--r-- | views/error.ejs | 2 | ||||
| -rw-r--r-- | views/index.ejs | 4 | ||||
| -rw-r--r-- | views/password.ejs | 5 | ||||
| -rw-r--r-- | views/register.ejs | 2 | ||||
| -rw-r--r-- | views/success.ejs | 2 |
11 files changed, 29 insertions, 31 deletions
@@ -76,19 +76,19 @@ app.get("/", async (req, res) => { db.get(`SELECT * FROM users WHERE discord_id = ?`, [id], (err, row) => { if (err) { console.error("Error querying the database:", err); - return res.render('error', { error: 'An error occurred while checking user data.' }); + return res.render('error', { serverName: process.env.SERVER_NAME || 'FreeSO', error: 'An error occurred while checking user data.' }); } if (row) { - return res.render('dashboard', { ...req.user, fso_username: row.fso_username, serverName: process.env.SERVER_NAME || 'FreeSO' }); + return res.render('dashboard', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', fso_username: row.fso_username, client_download: process.env.CLIENT_DOWNLOAD || 'https://fso-builds.riperiperi.workers.dev' }); } else { - return res.render('register', req.user); + return res.render('register', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO' } ); } }); } else { - return res.render('error-login', { error: 'You must be a member of that server to access this page.' }); } + return res.render('error-login', { serverName: process.env.SERVER_NAME || 'FreeSO', error: 'You must be a member of that server to access this page.' }); } } else { - res.render('index', { serverName: process.env.SERVER_NAME || 'FreeSO', discordName: process.env.DISCORD_NAME || 'Discord' }); + res.render('index', { serverName: process.env.SERVER_NAME || 'FreeSO', logo: process.env.LOGO || '/img/logo.png' , discordName: process.env.DISCORD_NAME || 'Discord' }); } }); @@ -98,7 +98,7 @@ app.post("/register", upload.none(), async (req, res) => { const { username, password, passwordconfirm } = req.body; if (password !== passwordconfirm) { - return res.render('register', { ...req.user, error: "Passwords do not match" }); + return res.render('register', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: "Passwords do not match" }); } try { @@ -115,19 +115,19 @@ app.post("/register", upload.none(), async (req, res) => { if (response.data.error) { const errorKey = response.data.error_description || "default"; const errorMessage = statusMessages.registration_errors[errorKey] || "Something went wrong"; - return res.render('register', { ...req.user, error: errorMessage }); + return res.render('register', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: errorMessage }); } else { db.run(`INSERT INTO users (discord_id, fso_username) VALUES (?, ?)`, [id, username], function(err) { if (err) { console.error("Error inserting user data into database:", err); - return res.render('register', { ...req.user, error: "An error occurred during registration, contact server operator." }); + return res.render('register', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: "An error occurred during registration, contact server operator." }); } - return res.render('success', { ...req.user, success: "Created account successfully!"}); + return res.render('success', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', success: "Created account successfully!"}); }); } } catch (error) { console.error("Error during registration:", error); - return res.render('register', { ...req.user, error: "An error occurred during registration, contact server operator." }); + return res.render('register', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO' ,error: "An error occurred during registration, contact server operator." }); } } else { res.status(401).send("Unauthorized."); @@ -136,7 +136,7 @@ app.post("/register", upload.none(), async (req, res) => { app.get('/password', (req, res) => { if (req.isAuthenticated()) { - res.render('password'); + res.render('password', { serverName: process.env.SERVER_NAME || 'FreeSO' }); } else { res.redirect("/login"); } @@ -145,24 +145,24 @@ app.get('/password', (req, res) => { app.post('/password/change', upload.none(), async (req, res) => { if (req.isAuthenticated()) { const { id } = req.user; - const { currentpassword, newpassword, newpassword2 } = req.body; + const { newpassword, newpassword2 } = req.body; if (newpassword !== newpassword2) { - return res.render('password', { ...req.user, error: "Passwords do not match" }); + return res.render('password', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: "Passwords do not match" }); } try { db.get(`SELECT * FROM users WHERE discord_id = ?`, [id], async (err, row) => { if (err) { console.error("Error querying the database:", err); - return res.render('password', {...req.user, error: "An error occurred while checking user data."}); + return res.render('password', {...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: "An error occurred while checking user data."}); } if (row) { const form = new FormData(); form.append('username', row.fso_username); - form.append('old_password', currentpassword); form.append('new_password', newpassword); + form.append('key', process.env.REG_KEY); const response = await axios.post(`${process.env.API_URL}/userapi/password`, form, { headers: form.getHeaders() @@ -172,15 +172,15 @@ app.post('/password/change', upload.none(), async (req, res) => { const errorKey = response.data.error_description || "default"; const errorMessage = statusMessages.password_reset_errors[errorKey] || "Something went wrong"; - return res.render('password', { ...req.user, error: errorMessage }); + return res.render('password', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: errorMessage }); } else { - return res.render('success', { ...req.user, success: "Password changed successfully!" }); + return res.render('success', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', success: "Password changed successfully!" }); } } }); } catch (error) { console.error("Error during password change:", error); - return res.render('password', { ...req.user, error: "An error occurred during password change, contact server operator." }); + return res.render('password', { ...req.user, serverName: process.env.SERVER_NAME || 'FreeSO', error: "An error occurred during password change, contact server operator." }); } } else { res.status(401).send("Unauthorized."); diff --git a/public/img/bnbso-logo.png b/public/img/bnbso-logo.png Binary files differnew file mode 100644 index 0000000..b98c6ed --- /dev/null +++ b/public/img/bnbso-logo.png diff --git a/public/img/logo.png b/public/img/logo.png Binary files differindex b98c6ed..3988f43 100644 --- a/public/img/logo.png +++ b/public/img/logo.png diff --git a/status.json b/status.json index 076dd3a..e22aff5 100644 --- a/status.json +++ b/status.json @@ -19,7 +19,8 @@ "email_invalid": "Invalid email address.", "user_invalid": "User does not exist.", "incorrect_password": "Incorrect password.", - "invalid_token": "Invalid confirmation token." + "invalid_token": "Invalid confirmation token.", + "key_invalid": "Invalid key." }, "success_responses": { "success": "Operation was successful.", diff --git a/views/dashboard.ejs b/views/dashboard.ejs index e63c458..a2d1914 100644 --- a/views/dashboard.ejs +++ b/views/dashboard.ejs @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO Dashboard</title> + <title><%= serverName %> Dashboard</title> </head> <body> <div class="background"></div> @@ -13,7 +13,7 @@ <h2><%= serverName %> Username: <%= fso_username %></h2> <h2 id="simtime"></h2> <a href="/password" class="button">Change Password</a> - <a href="https://fso-builds.riperiperi.workers.dev" class="button">Download <%= serverName %> Client</a> + <a href=<%= client_download %> class="button">Download <%= serverName %> Client</a> <a href="/logout" class="button logout">Logout</a> </div> <script> diff --git a/views/error-login.ejs b/views/error-login.ejs index abd3763..e8fc138 100644 --- a/views/error-login.ejs +++ b/views/error-login.ejs @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbAIM</title> + <title><%= serverName %> Error</title> </head> <body> <div class="background"></div> diff --git a/views/error.ejs b/views/error.ejs index c128277..44a94de 100644 --- a/views/error.ejs +++ b/views/error.ejs @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO</title> + <title><%= serverName %> Error</title> </head> <body> <div class="background"></div> diff --git a/views/index.ejs b/views/index.ejs index 736d56d..bb15326 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -4,12 +4,12 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO</title> + <title><%= serverName %></title> </head> <body> <div class="background"></div> <div class="container"> - <img src="/img/logo.png" alt="logo" width="200"> + <img src=<%= logo %> alt="logo" width="200"> <p>Log into your Discord account to get access to <%= serverName %>.</p> <p><i>You must be a <%= discordName %> member.</i></p> <a class="button discord" href="/login">Login with Discord</a> diff --git a/views/password.ejs b/views/password.ejs index 29f399a..9af672f 100644 --- a/views/password.ejs +++ b/views/password.ejs @@ -4,16 +4,13 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO Change Password</title> + <title><%= serverName %> Change Password</title> </head> <body> <div class="background"></div> <div class="container"> <h1>Change Password</h1> - <p>If you have issues changing your password, ask the server operator to reset your password.</p> <form method="post" action="/password/change"> - <label for="currentpassword">Current Password:</label> - <input type="password" id="currentpassword" name="currentpassword"> <label for="newpassword">New Password:</label> <input type="password" id="newpassword" name="newpassword"> <label for="newpassword2">Confirm New Password:</label> diff --git a/views/register.ejs b/views/register.ejs index 382214d..8d45e62 100644 --- a/views/register.ejs +++ b/views/register.ejs @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO Register</title> + <title><%= serverName %> Register</title> </head> <body> <div class="background"></div> diff --git a/views/success.ejs b/views/success.ejs index 4824e19..627eb4f 100644 --- a/views/success.ejs +++ b/views/success.ejs @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/css/style.css"> - <title>bnbSO</title> + <title><%= serverName %></title> </head> <body> <div class="background"></div> |
