text: /**
   *
   *  Copyright 2019 The FATE Authors. All Rights Reserved.
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   *
   */
  
  import router from './router'
  import store from './store'
  import NProgress from 'nprogress' // progress bar
  import 'nprogress/nprogress.css' // progress bar style
  import { Message } from 'element-ui'
  import { getToken } from '@/utils/auth' // getToken from cookie
  
  NProgress.configure({ showSpinner: false })// NProgress configuration
  
  const whiteList = ['/login'] //
  router.beforeEach((to, from, next) => {
    NProgress.start()
    if (getToken()) {
      if (to.path === '/login') {
        next({ path: '/' })
        NProgress.done() // if current page is old-job-dashboard will not trigger	afterEach hook, so manually handle it
      } else {
        if (store.getters.roles.length === 0) {
          store.dispatch('GetInfo').then(res => {
            next()
          }).catch((err) => {
            store.dispatch('LogOut').then(() => {
              Message.error(err || 'Verification failed, please login again')
              next({ path: '/' })
            }).catch(err => {
              console.log(err)
            })
          })
        } else {
          next()
        }
      }
    } else {
      if (whiteList.indexOf(to.path) !== -1) {
        next()
      } else {
        next(`/login?redirect=${to.path}`)
        NProgress.done()
      }
    }
  })
  
  router.afterEach(() => {
    NProgress.done()
  })
  