diff --git a/README.md b/README.md index e05aa15..03e3247 100644 --- a/README.md +++ b/README.md @@ -210,22 +210,23 @@ Voici la liste des variables configurables : ``` NODE_ENV # Environnement dans lequel exécuter le projet (development ou production) -PORT # Port sur lequel éxécuter le serveur (par défaut 3001) -MONGODB_URI # Url du serveur mongo (par défaut mongodb://musictopus-db/musictopus) -SECRET # Hash utilisé pour pour sauvegardé les dessions (par défaut waemaeMe5ahc6ce1chaeKohKa6Io8Eik) +PORT # Port sur lequel éxécuter le serveur (3001 par défaut) +MONGODB_URI # Url du serveur mongo (mongodb://musictopus-db/musictopus par défaut) +SECRET # Hash utilisé pour pour sauvegardé les dessions (waemaeMe5ahc6ce1chaeKohKa6Io8Eik par défault) DISCOGS_TOKEN # Token Discogs (vous devez créer un compte sur discogs afin d'en obtenir un gratuitement) FORMSPREE_ID # Id du formulaire formspree pour la page "nous-contacter" MATOMO_URL # Url vers l'instance matomo (exemple: https://analytics.darkou.fr/) MATOMO_ID # Id du site sur votre instance matomo (exemple: 1) -SITE_NAME # Nom du site (utilisé dans le titre des pages) +SITE_NAME # Nom du site utilisé dans le titre des pages (MusicTopus par défaut) AWS_ACCESS_KEY_ID # Clé d'accès AWS AWS_SECRET_ACCESS_KEY # Clé secrète AWS -S3_ENDPOINT # Url de l'instance aws (s3.fr-par.scw.cloud pour scaleway france par exemple) -S3_SIGNATURE # Version de la signature AWS (s3v4 pour scaleway par exemple) -S3_BASEFOLDER # Nom du sous dossier dans lequel seront mis les pochettes des albums -S3_BUCKET # Nom du bucket -JOBS_HEADER_KEY # Nom du header utilisé pour l'identification des tâches cron (par exemple musictopus) -JOBS_HEADER_VALUE # Valeur de la clé +S3_ENDPOINT # Url de l'instance aws (s3.fr-par.scw.cloud par défaut) +S3_SIGNATURE # Version de la signature AWS (s3v4 par défaut) +S3_BASEFOLDER # Nom du sous dossier dans lequel seront mis les pochettes des albums (dev par défaut) +S3_BUCKET # Nom du bucket (musictopus par défaut, à changer impérativement si vous voulez que cela fonctionne) +JOBS_HEADER_KEY # Nom du header utilisé pour l'identification des tâches cron (musictopus par défaut) +JOBS_HEADER_VALUE # Valeur de la clé (ooYee9xok7eigo2shiePohyoGh1eepew par défaut) +REGISTRATION_OPEN # true/false en fonction de si vous souhaitez activer ou non l'inscription à votre instance (true par défaut) ``` ## Contributeurs diff --git a/docker-compose.yml.dev b/docker-compose.yml.dev index dbe38b9..ca86d9e 100644 --- a/docker-compose.yml.dev +++ b/docker-compose.yml.dev @@ -36,6 +36,7 @@ services: S3_SIGNATURE: ${S3_SIGNATURE} JOBS_HEADER_KEY: ${JOBS_HEADER_KEY} JOBS_HEADER_VALUE: ${JOBS_HEADER_VALUE} + REGISTRATION_OPEN: ${REGISTRATION_OPEN} networks: - musictopus musictopus-db: diff --git a/docker-compose.yml.prod b/docker-compose.yml.prod index c343531..6beffa3 100644 --- a/docker-compose.yml.prod +++ b/docker-compose.yml.prod @@ -36,6 +36,7 @@ services: S3_SIGNATURE: ${S3_SIGNATURE} JOBS_HEADER_KEY: ${JOBS_HEADER_KEY} JOBS_HEADER_VALUE: ${JOBS_HEADER_VALUE} + REGISTRATION_OPEN: ${REGISTRATION_OPEN} networks: - musictopus musictopus-db: diff --git a/src/config/index.js b/src/config/index.js index 17b341d..7906240 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -17,4 +17,6 @@ module.exports = { jobsHeaderKey: process.env.JOBS_HEADER_KEY || "musictopus", jobsHeaderValue: process.env.JOBS_HEADER_VALUE || "ooYee9xok7eigo2shiePohyoGh1eepew", + registrationOpen: + (process.env.REGISTRATION_OPEN || "true").toLowerCase() === "true", }; diff --git a/src/routes/index.js b/src/routes/index.js index ac43a51..faa4142 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -7,6 +7,8 @@ import Auth from "../middleware/Auth"; import render from "../libs/format"; +import { registrationOpen } from "../config"; + // eslint-disable-next-line new-cap const router = express.Router(); @@ -59,11 +61,33 @@ router } ); -router - .route("/inscription") - .get((req, res, next) => { +if (registrationOpen) { + router + .route("/inscription") + .get((req, res, next) => { + try { + const page = new Pages(req, "inscription/index"); + + page.setPageTitle("Inscription"); + + render(res, page); + } catch (err) { + next(err); + } + }) + .post(async (req, res) => { + try { + await Auth.register(req); + + res.redirect("/"); + } catch (err) { + res.redirect("/inscription"); + } + }); +} else { + router.route("/inscription").get((req, res, next) => { try { - const page = new Pages(req, "inscription"); + const page = new Pages(req, "inscription/desactivee"); page.setPageTitle("Inscription"); @@ -71,16 +95,8 @@ router } catch (err) { next(err); } - }) - .post(async (req, res) => { - try { - await Auth.register(req); - - res.redirect("/"); - } catch (err) { - res.redirect("/inscription"); - } }); +} router .route("/ajouter-un-album") diff --git a/views/index.ejs b/views/index.ejs index ef76ac1..2386a83 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -179,8 +179,11 @@ diff --git a/views/pages/connexion.ejs b/views/pages/connexion.ejs index ae162fa..2e86f72 100644 --- a/views/pages/connexion.ejs +++ b/views/pages/connexion.ejs @@ -12,9 +12,11 @@ + <% if ( config.registrationOpen === true ) { %>

Pas encore inscrit ? Inscrivez-vous

+ <% } %> diff --git a/views/pages/inscription/desactivee.ejs b/views/pages/inscription/desactivee.ejs new file mode 100644 index 0000000..b8140f1 --- /dev/null +++ b/views/pages/inscription/desactivee.ejs @@ -0,0 +1,19 @@ +
+
+

+ Inscription +

+
+
+

+ Les inscriptions sur ce site sont fermées. +

+

+ Vous avez cependant la possibilité d'héberger vous même une version de MusicTopus en vous rendant directement sur le dépot du projet. +

+
+

+ Erreur 404 +

+
+
\ No newline at end of file diff --git a/views/pages/inscription.ejs b/views/pages/inscription/index.ejs similarity index 100% rename from views/pages/inscription.ejs rename to views/pages/inscription/index.ejs