diff --git a/src/components/login_form/login_form.js b/src/components/login_form/login_form.js index 1a6f6015432eb6c5f372f4e9504b978d7aa83273..a117b76fd24f8acaa3a6a438a4c11c357bac8112 100644 --- a/src/components/login_form/login_form.js +++ b/src/components/login_form/login_form.js @@ -4,7 +4,8 @@ const LoginForm = { authError: false }), computed: { - loggingIn () { return this.$store.state.users.loggingIn } + loggingIn () { return this.$store.state.users.loggingIn }, + registrationOpen () { return this.$store.state.config.registrationOpen } }, methods: { submit () { diff --git a/src/components/login_form/login_form.vue b/src/components/login_form/login_form.vue index 585af6f64eebf308a2c21079ae55beccd165d894..d629114820527ef4b89fd0a2100225c638276605 100644 --- a/src/components/login_form/login_form.vue +++ b/src/components/login_form/login_form.vue @@ -16,7 +16,7 @@ </div> <div class='form-group'> <div class='login-bottom'> - <div><router-link :to="{name: 'registration'}" class='register'>Register</router-link></div> + <div><router-link :to="{name: 'registration'}" v-if='registrationOpen' class='register'>Register</router-link></div> <button :disabled="loggingIn" type='submit' class='btn btn-default base05 base01-background'>Log in</button> </div> </div> diff --git a/src/components/registration/registration.js b/src/components/registration/registration.js index 9e99197c29a3c8c628f0149b4e67e6f71b62545a..771b3b27502b563a1c5571cb171ad79c9afc36b8 100644 --- a/src/components/registration/registration.js +++ b/src/components/registration/registration.js @@ -4,6 +4,11 @@ const registration = { error: false, registering: false }), + created () { + if (!this.$store.state.config.registrationOpen || !!this.$store.state.users.currentUser) { + this.$router.push('/main/all') + } + }, computed: { termsofservice () { return this.$store.state.config.tos } }, diff --git a/src/main.js b/src/main.js index 52b820c28b22faf015f0a518cbae4d1f31339833..4b7891ed0616aaafafa30b37283b23b56be1ed31 100644 --- a/src/main.js +++ b/src/main.js @@ -86,11 +86,12 @@ new Vue({ window.fetch('/static/config.json') .then((res) => res.json()) - .then(({name, theme, background, logo, tos}) => { + .then(({name, theme, background, logo, registrationOpen}) => { store.dispatch('setOption', { name: 'name', value: name }) store.dispatch('setOption', { name: 'theme', value: theme }) store.dispatch('setOption', { name: 'background', value: background }) store.dispatch('setOption', { name: 'logo', value: logo }) + store.dispatch('setOption', { name: 'registrationOpen', value: registrationOpen }) }) window.fetch('/static/terms-of-service.html') diff --git a/static/config.json b/static/config.json index 3b6d56c44abeb83cee9a0a6b375bbb9319a16ab5..195ee0469062d1a4cd658870cf8445da2a327191 100644 --- a/static/config.json +++ b/static/config.json @@ -2,5 +2,6 @@ "name": "Pleroma FE", "theme": "base16-pleroma-dark.css", "background": "/static/bg.jpg", - "logo": "/static/logo.png" + "logo": "/static/logo.png", + "registrationOpen": false }