Search code examples
laravelvue.jspermissionsroleslaravel-permission

get user permissions with laravel vue rest api


I'm trying to get all user permissions with Laravel for backend and vuejs for frontend. How can i get this from api to vue? what is the best choice? I tried to get them with below code but shows me error

In the permissionMixin:

import PermissionDataService from '../../Servieces/PermissionDataService'

export default {

    methods: {
        checkPermission() {
            let permissions;
            PermissionDataService.get("user_permissions")
                .then((response) => {
                    permissions= response.data;
                })
                .catch((error) => {
                    console.debug(error)
                });
            return hasAccess;
        }
    }
}

and that is how i used it in main.js:

import permission from "@/core/mixins/permissionMixin";
Vue.mixin(permission);
window.Laravel = this.checkPermission();

console.debug(Laravel)

Vue.directive('can', function (el, binding) {
    return Laravel.permissions.indexOf(binding) !== -1;
});

but always shows me this error:

Uncaught TypeError: can't access property "defaults", a.default.axios is undefined

I am totally sure the endpoint is ok ANY Idea?


Solution

  • Finally solved. I had to put

    window.Laravel = this.checkPermission();
    

    into one of layout files