diff --git a/CHANGELOG.md b/CHANGELOG.md
index eeffd2c2e06818d0c8f5829560bc7a13292571e6..58325f3f9f981b12462a6d347dd6dac7b009c3cb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
 ### Added
 
+- Link settings that enable registrations and invites
+
+### Fixed
+
+- Disable Invites tab when invites are disabled on BE
+
+## [2.0.2] - 2020-04-01
+
+### Added
+
 - Ability to see local statuses in Statuses by instance section
 - Ability to configure Oban.Cron settings and settings for notifications streamer
 - Settings search
diff --git a/src/router/modules/charts.js b/src/router/modules/charts.js
deleted file mode 100644
index d11f6efd0eb53461c7fa8cec1766266e5a555ced..0000000000000000000000000000000000000000
--- a/src/router/modules/charts.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/** When your routing table is too long, you can split it into small modules**/
-
-import Layout from '@/views/layout/Layout'
-
-const chartsRouter = {
-  path: '/charts',
-  component: Layout,
-  redirect: 'noredirect',
-  name: 'Charts',
-  meta: {
-    title: 'charts',
-    icon: 'chart'
-  },
-  children: [
-    {
-      path: 'keyboard',
-      component: () => import('@/views/charts/keyboard'),
-      name: 'KeyboardChart',
-      meta: { title: 'keyboardChart', noCache: true }
-    },
-    {
-      path: 'line',
-      component: () => import('@/views/charts/line'),
-      name: 'LineChart',
-      meta: { title: 'lineChart', noCache: true }
-    },
-    {
-      path: 'mixchart',
-      component: () => import('@/views/charts/mixChart'),
-      name: 'MixChart',
-      meta: { title: 'mixChart', noCache: true }
-    }
-  ]
-}
-
-export default chartsRouter
diff --git a/src/router/modules/nested.js b/src/router/modules/nested.js
deleted file mode 100644
index ad8e31f934d772f254aecb030cd36af2a1a366f3..0000000000000000000000000000000000000000
--- a/src/router/modules/nested.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/** When your routing table is too long, you can split it into small modules**/
-
-import Layout from '@/views/layout/Layout'
-
-const nestedRouter = {
-  path: '/nested',
-  component: Layout,
-  redirect: '/nested/menu1/menu1-1',
-  name: 'Nested',
-  meta: {
-    title: 'nested',
-    icon: 'nested'
-  },
-  children: [
-    {
-      path: 'menu1',
-      component: () => import('@/views/nested/menu1/index'), // Parent router-view
-      name: 'Menu1',
-      meta: { title: 'menu1' },
-      redirect: '/nested/menu1/menu1-1',
-      children: [
-        {
-          path: 'menu1-1',
-          component: () => import('@/views/nested/menu1/menu1-1'),
-          name: 'Menu1-1',
-          meta: { title: 'menu1-1' }
-        },
-        {
-          path: 'menu1-2',
-          component: () => import('@/views/nested/menu1/menu1-2'),
-          name: 'Menu1-2',
-          redirect: '/nested/menu1/menu1-2/menu1-2-1',
-          meta: { title: 'menu1-2' },
-          children: [
-            {
-              path: 'menu1-2-1',
-              component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
-              name: 'Menu1-2-1',
-              meta: { title: 'menu1-2-1' }
-            },
-            {
-              path: 'menu1-2-2',
-              component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
-              name: 'Menu1-2-2',
-              meta: { title: 'menu1-2-2' }
-            }
-          ]
-        },
-        {
-          path: 'menu1-3',
-          component: () => import('@/views/nested/menu1/menu1-3'),
-          name: 'Menu1-3',
-          meta: { title: 'menu1-3' }
-        }
-      ]
-    },
-    {
-      path: 'menu2',
-      name: 'Menu2',
-      component: () => import('@/views/nested/menu2/index'),
-      meta: { title: 'menu2' }
-    }
-  ]
-}
-
-export default nestedRouter
diff --git a/src/store/modules/app.js b/src/store/modules/app.js
index fba4b05c9d638add4433005fa297014b1f970a38..073ac434429f1f317e07c2a208f85a7bce63daf6 100644
--- a/src/store/modules/app.js
+++ b/src/store/modules/app.js
@@ -8,7 +8,8 @@ const app = {
     },
     device: 'desktop',
     language: Cookies.get('language') || 'en',
-    size: Cookies.get('size') || 'medium'
+    size: Cookies.get('size') || 'medium',
+    invitesEnabled: false
   },
   mutations: {
     TOGGLE_SIDEBAR: state => {
@@ -28,6 +29,9 @@ const app = {
     TOGGLE_DEVICE: (state, device) => {
       state.device = device
     },
+    SET_INVITES_ENABLED: (state, invitesEnabled) => {
+      state.invitesEnabled = invitesEnabled
+    },
     SET_LANGUAGE: (state, language) => {
       state.language = language
       Cookies.set('language', language)
@@ -47,6 +51,9 @@ const app = {
     toggleDevice({ commit }, device) {
       commit('TOGGLE_DEVICE', device)
     },
+    SetInvitesEnabled({ commit }, invitesEnabled) {
+      commit('SET_INVITES_ENABLED', invitesEnabled)
+    },
     setLanguage({ commit }, language) {
       commit('SET_LANGUAGE', language)
     },
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 3ab9339d356b209284a35edfc9da5646b13d75c1..5865221344bd3894cb88669e004c04c6b5f49f65 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -72,10 +72,11 @@ const user = {
         })
       })
     },
-    async GetNodeInfo({ commit, state }) {
+    async GetNodeInfo({ commit, dispatch, state }) {
       const nodeInfo = await getNodeInfo(state.authHost)
 
       commit('SET_NODE_INFO', nodeInfo.data)
+      dispatch('SetInvitesEnabled', nodeInfo.data.metadata.invitesEnabled)
     },
     GetUserInfo({ commit, state }) {
       return new Promise((resolve, reject) => {
diff --git a/src/views/layout/components/Sidebar/SidebarItem.vue b/src/views/layout/components/Sidebar/SidebarItem.vue
index 52943ff0ac06b63a899803baf57fad3f6c89b009..9fb8813958d7565e1ea6a8bb57cb6a2c88c3ef60 100644
--- a/src/views/layout/components/Sidebar/SidebarItem.vue
+++ b/src/views/layout/components/Sidebar/SidebarItem.vue
@@ -1,5 +1,5 @@
 <template>
-  <div v-if="!item.hidden&&item.children" class="menu-wrapper">
+  <div v-if="!item.hidden && item.children && invitesEnabled" class="menu-wrapper">
 
     <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
       <app-link :to="resolvePath(onlyOneChild.path)">
@@ -68,6 +68,11 @@ export default {
       onlyOneChild: null
     }
   },
+  computed: {
+    invitesEnabled() {
+      return this.basePath === '/invites' ? this.$store.state.app.invitesEnabled : true
+    }
+  },
   methods: {
     hasOneShowingChild(children, parent) {
       const showingChildren = children.filter(item => {
diff --git a/src/views/nested/menu1/index.vue b/src/views/nested/menu1/index.vue
deleted file mode 100644
index fdba73a45e5d6a3556244f625a21bb62a7591dc1..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/index.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-<template >
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1">
-      <router-view />
-    </el-alert>
-  </div>
-</template>
diff --git a/src/views/nested/menu1/menu1-1/index.vue b/src/views/nested/menu1/menu1-1/index.vue
deleted file mode 100644
index 824b2cb63d8970592ee887a18ef05d422be3ad4a..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/menu1-1/index.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-<template >
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1-1" type="success">
-      <router-view />
-    </el-alert>
-  </div>
-</template>
diff --git a/src/views/nested/menu1/menu1-2/index.vue b/src/views/nested/menu1/menu1-2/index.vue
deleted file mode 100644
index 0c86276e0162396768de0d2781927e7d0322130f..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/menu1-2/index.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-<template>
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1-2" type="success">
-      <router-view />
-    </el-alert>
-  </div>
-</template>
diff --git a/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue b/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue
deleted file mode 100644
index f87d88f4908681b45eae1fbb26389b86b5f9cc1d..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template functional>
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1-2-1" type="warning" />
-  </div>
-</template>
diff --git a/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue b/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue
deleted file mode 100644
index d88789f205ed5bbba622bfb1b6291ad827e6004d..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template functional>
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1-2-2" type="warning" />
-  </div>
-</template>
diff --git a/src/views/nested/menu1/menu1-3/index.vue b/src/views/nested/menu1/menu1-3/index.vue
deleted file mode 100644
index f7cd0738f1b36e662bf6b088b337c79865878c4c..0000000000000000000000000000000000000000
--- a/src/views/nested/menu1/menu1-3/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template functional>
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 1-3" type="success" />
-  </div>
-</template>
diff --git a/src/views/nested/menu2/index.vue b/src/views/nested/menu2/index.vue
deleted file mode 100644
index 19dd48f0edf37f54317f14b0cfb707d00ab04f11..0000000000000000000000000000000000000000
--- a/src/views/nested/menu2/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template>
-  <div style="padding:30px;">
-    <el-alert :closable="false" title="menu 2" />
-  </div>
-</template>