Allowing auth to be disabled in config.

This commit is contained in:
DebaucheryLibrarian 2021-03-16 04:12:05 +01:00
parent 1703e9a541
commit 0d7a03f3e5
7 changed files with 36 additions and 3 deletions

View File

@ -64,6 +64,12 @@ async function login() {
} }
} }
function mounted() {
if (!this.$store.state.auth.enabled) {
this.$router.replace({ name: 'not-found' });
}
}
export default { export default {
data() { data() {
return { return {
@ -73,6 +79,7 @@ export default {
error: null, error: null,
}; };
}, },
mounted,
methods: { methods: {
login, login,
}, },

View File

@ -73,6 +73,12 @@ async function signup() {
} }
} }
function mounted() {
if (!this.$store.state.auth.enabled) {
this.$router.replace({ name: 'not-found' });
}
}
export default { export default {
data() { data() {
return { return {
@ -83,6 +89,7 @@ export default {
error: null, error: null,
}; };
}, },
mounted,
methods: { methods: {
signup, signup,
}, },

View File

@ -2,13 +2,13 @@
<div class="menu"> <div class="menu">
<ul class="menu-items noselect"> <ul class="menu-items noselect">
<router-link <router-link
v-if="me" v-if="auth && me"
:to="{ name: 'user', params: { username: me.username } }" :to="{ name: 'user', params: { username: me.username } }"
class="menu-username" class="menu-username"
>{{ me.username }}</router-link> >{{ me.username }}</router-link>
<router-link <router-link
v-else v-else-if="auth"
:to="{ name: 'login', query: { ref: $route.path } }" :to="{ name: 'login', query: { ref: $route.path } }"
class="menu-item" class="menu-item"
@click.stop @click.stop
@ -17,7 +17,7 @@
</router-link> </router-link>
<li <li
v-if="me" v-if="auth && me"
class="menu-item" class="menu-item"
@click.stop="$store.dispatch('logout')" @click.stop="$store.dispatch('logout')"
> >
@ -89,6 +89,10 @@ function theme(state) {
return state.ui.theme; return state.ui.theme;
} }
function auth(state) {
return state.auth.enabled;
}
function me(state) { function me(state) {
return state.auth.user; return state.auth.user;
} }
@ -104,6 +108,7 @@ function setSfw(enabled) {
export default { export default {
computed: { computed: {
...mapState({ ...mapState({
auth,
sfw, sfw,
theme, theme,
me, me,

View File

@ -1,3 +1,4 @@
export default { export default {
enabled: window.env.auth,
user: null, user: null,
}; };

View File

@ -33,6 +33,9 @@ module.exports = {
accessKey: 'ABCDEFGHIJ1234567890', accessKey: 'ABCDEFGHIJ1234567890',
secretKey: 'abcdefghijklmnopqrstuvwxyz1234567890ABCD', secretKey: 'abcdefghijklmnopqrstuvwxyz1234567890ABCD',
}, },
auth: {
enabled: true,
},
exclude: { exclude: {
channels: [ channels: [
// 21sextreme, no longer updated // 21sextreme, no longer updated

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
const config = require('config');
const util = require('util'); const util = require('util');
const crypto = require('crypto'); const crypto = require('crypto');
@ -21,6 +22,10 @@ async function verifyPassword(password, storedPassword) {
} }
async function login(credentials) { async function login(credentials) {
if (!config.auth.enabled) {
throw new HttpError('Authentication is disabled', 405);
}
const user = await fetchUser(credentials.username, true); const user = await fetchUser(credentials.username, true);
if (!user) { if (!user) {
@ -33,6 +38,10 @@ async function login(credentials) {
} }
async function signup(credentials) { async function signup(credentials) {
if (!config.auth.enabled) {
throw new HttpError('Authentication is disabled', 405);
}
if (!credentials.username) { if (!credentials.username) {
throw new HttpError('Username required', 400); throw new HttpError('Username required', 400);
} }

View File

@ -116,6 +116,7 @@ async function initServer() {
res.render(path.join(__dirname, '../../assets/index.ejs'), { res.render(path.join(__dirname, '../../assets/index.ejs'), {
env: JSON.stringify({ env: JSON.stringify({
sfw: !!req.headers.sfw || Object.prototype.hasOwnProperty.call(req.query, 'sfw'), sfw: !!req.headers.sfw || Object.prototype.hasOwnProperty.call(req.query, 'sfw'),
auth: config.auth.enabled,
sessionId: req.session.safeId, sessionId: req.session.safeId,
}), }),
}); });