diff options
| author | Pitu <[email protected]> | 2019-03-02 02:08:11 +0900 |
|---|---|---|
| committer | Pitu <[email protected]> | 2019-03-02 02:08:11 +0900 |
| commit | 73d85e8c7938e1db30da3cc4354b143d4a078473 (patch) | |
| tree | 168f25e4d4a6cff7cd21b07f8b3df417ab28ab9e | |
| parent | Create pm2.md (diff) | |
| download | host.fuwn.me-73d85e8c7938e1db30da3cc4354b143d4a078473.tar.xz host.fuwn.me-73d85e8c7938e1db30da3cc4354b143d4a078473.zip | |
Enviroment variables parsing fix
| -rw-r--r-- | nuxt.config.js | 4 | ||||
| -rw-r--r-- | src/api/routes/albums/link/linkPOST.js | 2 | ||||
| -rw-r--r-- | src/api/routes/auth/registerPOST.js | 2 | ||||
| -rw-r--r-- | src/api/routes/files/uploadPOST.js | 4 | ||||
| -rw-r--r-- | src/api/routes/service/configGET.js | 18 | ||||
| -rw-r--r-- | src/api/structures/Server.js | 6 | ||||
| -rw-r--r-- | src/api/utils/Util.js | 4 | ||||
| -rw-r--r-- | src/site/pages/index.vue | 10 | ||||
| -rw-r--r-- | src/site/pages/login.vue | 4 | ||||
| -rw-r--r-- | src/site/store/index.js | 8 |
10 files changed, 37 insertions, 25 deletions
diff --git a/nuxt.config.js b/nuxt.config.js index 52b9252..9d60146 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -14,7 +14,9 @@ export default { serviceName: process.env.SERVICE_NAME, maxFileSize: process.env.MAX_SIZE, chunkSize: process.env.CHUNK_SIZE, - maxLinksPerAlbum: process.env.MAX_LINKS_PER_ALBUM + maxLinksPerAlbum: process.env.MAX_LINKS_PER_ALBUM, + publicMode: process.env.PUBLIC_MODE, + userAccounts: process.env.USER_ACCOUNTS }, srcDir: 'src/site/', head: { diff --git a/src/api/routes/albums/link/linkPOST.js b/src/api/routes/albums/link/linkPOST.js index 968e57d..e929c89 100644 --- a/src/api/routes/albums/link/linkPOST.js +++ b/src/api/routes/albums/link/linkPOST.js @@ -22,7 +22,7 @@ class linkPOST extends Route { Count the amount of links created for that album already and error out if max was reached */ const count = await db.table('links').where('albumId', albumId).count({ count: 'id' }); - if (count[0].count >= process.env.MAX_LINKS_PER_ALBUM) return res.status(400).json({ message: 'Maximum links per album reached' }); + if (count[0].count >= parseInt(process.env.MAX_LINKS_PER_ALBUM, 10)) return res.status(400).json({ message: 'Maximum links per album reached' }); /* Try to allocate a new identifier on the db diff --git a/src/api/routes/auth/registerPOST.js b/src/api/routes/auth/registerPOST.js index ee8e5ae..0bd8cfd 100644 --- a/src/api/routes/auth/registerPOST.js +++ b/src/api/routes/auth/registerPOST.js @@ -10,7 +10,7 @@ class registerPOST extends Route { } async run(req, res, db) { - if (!process.env.USER_ACCOUNTS) return res.status(401).json({ message: 'Creation of new accounts is currently disabled' }); + if (process.env.USER_ACCOUNTS == 'false') return res.status(401).json({ message: 'Creation of new accounts is currently disabled' }); if (!req.body) return res.status(400).json({ message: 'No body provided' }); const { username, password } = req.body; if (!username || !password) return res.status(401).json({ message: 'Invalid body provided' }); diff --git a/src/api/routes/files/uploadPOST.js b/src/api/routes/files/uploadPOST.js index 82e9d09..e88091a 100644 --- a/src/api/routes/files/uploadPOST.js +++ b/src/api/routes/files/uploadPOST.js @@ -181,7 +181,7 @@ class uploadPOST extends Route { /* If exif removal has been force service-wide or requested by the user, remove it */ - if (process.env.STRIP_EXIF) { // || user.settings.stripExif) { + if (process.env.STRIP_EXIF == 'true') { // || user.settings.stripExif) { // Util.removeExif(upload.filename); } @@ -195,7 +195,7 @@ class uploadPOST extends Route { const busboy = new Busboy({ headers: req.headers, limits: { - fileSize: process.env.MAX_SIZE * (1000 * 1000), + fileSize: parseInt(process.env.MAX_SIZE, 10) * (1000 * 1000), files: 1 } }); diff --git a/src/api/routes/service/configGET.js b/src/api/routes/service/configGET.js index 230b594..e12c57b 100644 --- a/src/api/routes/service/configGET.js +++ b/src/api/routes/service/configGET.js @@ -11,15 +11,15 @@ class configGET extends Route { config: { serviceName: process.env.SERVICE_NAME, uploadFolder: process.env.UPLOAD_FOLDER, - linksPerAlbum: process.env.MAX_LINKS_PER_ALBUM, - maxUploadSize: process.env.MAX_SIZE, - filenameLength: process.env.GENERATED_FILENAME_LENGTH, - albumLinkLength: process.env.GENERATED_ALBUM_LENGTH, - generateThumbnails: process.env.GENERATE_THUMBNAILS, - generateZips: process.env.GENERATE_ZIPS, - stripExif: process.env.STRIP_EXIF, - publicMode: process.env.PUBLIC_MODE, - enableAccounts: process.env.USER_ACCOUNTS + linksPerAlbum: parseInt(process.env.MAX_LINKS_PER_ALBUM, 10), + maxUploadSize: parseInt(process.env.MAX_SIZE, 10), + filenameLength: parseInt(process.env.GENERATED_FILENAME_LENGTH, 10), + albumLinkLength: parseInt(process.env.GENERATED_ALBUM_LENGTH, 10), + generateThumbnails: process.env.GENERATE_THUMBNAILS == 'true' ? true : false, + generateZips: process.env.GENERATE_ZIPS == 'true' ? true : false, + stripExif: process.env.STRIP_EXIF == 'true' ? true : false, + publicMode: process.env.PUBLIC_MODE == 'true' ? true : false, + enableAccounts: process.env.USER_ACCOUNTS == 'true' ? true : false } }); } diff --git a/src/api/structures/Server.js b/src/api/structures/Server.js index d2cc2f1..0dd22d7 100644 --- a/src/api/structures/Server.js +++ b/src/api/structures/Server.js @@ -10,14 +10,14 @@ const jetpack = require('fs-jetpack'); const path = require('path'); const rateLimiter = new RateLimit({ - windowMs: process.env.RATE_LIMIT_WINDOW, - max: process.env.RATE_LIMIT_MAX, + windowMs: parseInt(process.env.RATE_LIMIT_WINDOW, 10), + max: parseInt(process.env.RATE_LIMIT_MAX, 10), delayMs: 0 }); class Server { constructor() { - this.port = process.env.SERVER_PORT; + this.port = parseInt(process.env.SERVER_PORT, 10); this.server = express(); this.server.set('trust proxy', 1); this.server.use(helmet()); diff --git a/src/api/utils/Util.js b/src/api/utils/Util.js index 9e9753c..1242a5a 100644 --- a/src/api/utils/Util.js +++ b/src/api/utils/Util.js @@ -106,7 +106,7 @@ class Util { static getUniqueFilename(name) { const retry = (i = 0) => { const filename = randomstring.generate({ - length: process.env.GENERATED_FILENAME_LENGTH, + length: parseInt(process.env.GENERATED_FILENAME_LENGTH, 10), capitalization: 'lowercase' }) + path.extname(name); const exists = jetpack.exists(path.join(__dirname, '..', '..', '..', process.env.UPLOAD_FOLDER, filename)); @@ -121,7 +121,7 @@ class Util { static getUniqueAlbumIdentifier() { const retry = async (i = 0) => { const identifier = randomstring.generate({ - length: process.env.GENERATED_ALBUM_LENGTH, + length: parseInt(process.env.GENERATED_ALBUM_LENGTH, 10), capitalization: 'lowercase' }); const exists = await db.table('links').where({ identifier }).first(); diff --git a/src/site/pages/index.vue b/src/site/pages/index.vue index f170720..9aad6c6 100644 --- a/src/site/pages/index.vue +++ b/src/site/pages/index.vue @@ -51,7 +51,7 @@ <div class="columns"> <div class="column is-3 is-offset-2"> <div class="logo"> - <Logo/> + <Logo /> </div> </div> <div class="column is-5 centered"> @@ -64,7 +64,10 @@ </div> </div> <div class="spacer mt7" /> - <Uploader /> + <Uploader v-if="config.publicMode && !loggedIn" /> + <div v-else> + This site has disabled public uploads. You need an account. + </div> </div> </div> <div class="hero-foot"> @@ -96,6 +99,9 @@ export default { computed: { loggedIn() { return this.$store.state.loggedIn; + }, + config() { + return this.$store.state.config; } }, mounted() { diff --git a/src/site/pages/login.vue b/src/site/pages/login.vue index e4a1c9d..0c499f2 100644 --- a/src/site/pages/login.vue +++ b/src/site/pages/login.vue @@ -31,8 +31,10 @@ </b-field> <p class="control has-addons is-pulled-right"> - <router-link to="/register" + <router-link v-if="config.enableAccounts" + to="/register" class="is-text">Don't have an account?</router-link> + <span v-else>Registration is closed at the moment</span> <a id="loginBtn" class="button" @click="login">Log in</a> diff --git a/src/site/store/index.js b/src/site/store/index.js index 7cd9e42..e96f10a 100644 --- a/src/site/store/index.js +++ b/src/site/store/index.js @@ -44,9 +44,11 @@ const actions = { URL: process.env.DOMAIN, baseURL: `${process.env.DOMAIN}${process.env.ROUTE_PREFIX}`, serviceName: process.env.SERVICE_NAME, - maxFileSize: process.env.MAX_SIZE, - chunkSize: process.env.CHUNK_SIZE, - maxLinksPerAlbum: process.env.MAX_LINKS_PER_ALBUM + maxFileSize: parseInt(process.env.MAX_SIZE, 10), + chunkSize: parseInt(process.env.CHUNK_SIZE, 10), + maxLinksPerAlbum: parseInt(process.env.MAX_LINKS_PER_ALBUM, 10), + publicMode: process.env.PUBLIC_MODE == 'true' ? true : false, + enableAccounts: process.env.USER_ACCOUNTS == 'true' ? true : false }); } }; |