Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/ts.corals.io/frontend/store/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ts.corals.io/frontend/store/index.js
import Vue from 'vue';

const getDefaultState = () => {
  return {
    periodicItems: {
      time: new Date().getTime(),
      settings: [],
    },
    permissions: [],
    alerts: []
  }
};

export const state = getDefaultState;

export const mutations = {
  SET_SETTINGS(state, settings) {
    Vue.set(state.periodicItems, 'settings', settings);
    Vue.set(state.periodicItems, 'time', new Date().getTime());
  },
  SET_USER_PERMISSIONS(state, permissions) {
    state.permissions = permissions;
  },
  SET_ALERTS(state, alerts) {
    Vue.set(state, 'alerts', alerts);
  },
  CLEAR_ALERTS(state) {
    Vue.set(state, 'alerts', []);
  }
}

export const getters = {
  isExpired: state => {
    let time = state.periodicItems.time;

    let now = new Date().getTime();

    let minuets = 60;

    return (now - time) > minuets * 60 * 1000;
  },
  settings: (state) => (key, getObject = false) => {
    let settings = state.periodicItems.settings;

    if (key) {
      let object = settings.find(setting => setting.code === key);

      if (getObject) {
        return object
      } else {
        return object ? object.value : '';
      }
    }

    return settings;
  },
  alerts: (state) => {
    return state.alerts || [];
  },
  getUserDefaultRedirectTo: state => {
    let userRoles = state.auth.user.roles_names,
      redirectTo,
      role;

    for (let index in userRoles) {
      role = userRoles[index];

      redirectTo = role.dashboard_url;

      if (!redirectTo) {
        continue;
      }


      if (redirectTo.indexOf('{') >= 0) {
        let parameter = redirectTo.substring(redirectTo.indexOf("{") + 1, redirectTo.lastIndexOf("}")),
          parameterValue = state.auth.user[parameter];

        redirectTo = redirectTo.replace(`{${parameter}}`, parameterValue);
      }

      break;

    }

    if (!redirectTo) {
      redirectTo = '/dashboard';
    }

    return redirectTo;
  },
  permissions: state => state.permissions
}

export const actions = {
  GET_AND_SET_SETTINGS(store, {$axios, force = false}) {
    if (store.getters.settings().length && !store.getters.isExpired && !force) {
      return;
    }

    $axios.get('settings').then(({data: response}) => {
      store.commit('SET_SETTINGS', response.data);
    });
  },
  GET_AND_SET_ALERTS(store, {$axios}) {
    $axios.get('alerts').then(({data: response}) => {
      store.commit('SET_ALERTS', response.data);
    });
  },
  CLEAR_ALERTS(store) {
    store.commit('CLEAR_ALERTS');
  }
}

Spamworldpro Mini