From 9f18b950697b46879099e1116ee7e8e225267e7d Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Sun, 10 Jun 2018 14:14:56 +0200
Subject: [PATCH] Fixed #245: admin menu not showing after login

---
 changes/changelog.d/245.bugfix      |  1 +
 front/src/components/Sidebar.vue    |  2 +-
 front/src/components/auth/Login.vue |  2 --
 front/src/store/auth.js             | 10 +++++++---
 4 files changed, 9 insertions(+), 6 deletions(-)
 create mode 100644 changes/changelog.d/245.bugfix

diff --git a/changes/changelog.d/245.bugfix b/changes/changelog.d/245.bugfix
new file mode 100644
index 000000000..955279731
--- /dev/null
+++ b/changes/changelog.d/245.bugfix
@@ -0,0 +1 @@
+Fixed admin menu not showing after login (#245)
diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue
index 72c55847f..d46fb846c 100644
--- a/front/src/components/Sidebar.vue
+++ b/front/src/components/Sidebar.vue
@@ -272,7 +272,7 @@ export default {
         this.scrollToCurrent()
       }
     },
-    '$store.state.availablePermissions': {
+    '$store.state.auth.availablePermissions': {
       handler () {
         this.fetchNotificationsCount()
       },
diff --git a/front/src/components/auth/Login.vue b/front/src/components/auth/Login.vue
index f3add57b1..8286860bc 100644
--- a/front/src/components/auth/Login.vue
+++ b/front/src/components/auth/Login.vue
@@ -79,8 +79,6 @@ export default {
         username: this.credentials.username,
         password: this.credentials.password
       }
-      // We need to pass the component's this context
-      // to properly make use of http in the auth service
       this.$store.dispatch('auth/login', {
         credentials,
         next: '/library',
diff --git a/front/src/store/auth.js b/front/src/store/auth.js
index 87af081d2..d36366996 100644
--- a/front/src/store/auth.js
+++ b/front/src/store/auth.js
@@ -25,7 +25,11 @@ export default {
       state.username = ''
       state.token = ''
       state.tokenData = {}
-      state.availablePermissions = {}
+      state.availablePermissions = {
+        federation: false,
+        library: false,
+        upload: false
+      }
     },
     profile: (state, value) => {
       state.profile = value
@@ -108,8 +112,8 @@ export default {
         commit('authenticated', true)
         commit('profile', data)
         commit('username', data.username)
-        dispatch('favorites/fetch', null, {root: true})
-        dispatch('playlists/fetchOwn', null, {root: true})
+        dispatch('favorites/fetch', null, { root: true })
+        dispatch('playlists/fetchOwn', null, { root: true })
         Object.keys(data.permissions).forEach(function (key) {
           // this makes it easier to check for permissions in templates
           commit('permission', {key, status: data.permissions[String(key)]})
-- 
GitLab