app.js -
https://github.com/EvgeniiR/forum/blob/master/reso...let authorizations = require('./authorizations')
Vue.prototype.authorize = function (...params) {
if (! window.App.user) return false;
if (typeof params[0] === 'string') {
return authorizations[params[0]](params[1]);
}
return params[0](window.App.user);
}
Vue.prototype.signedIn = window.App.signedIn;
authorizations.js -
https://github.com/EvgeniiR/forum/blob/master/reso...let user = window.App.user;
module.exports = {
owns(model, prop = 'user_id') {
return model[prop] === user.id
},
isAdmin() {
return user.name === 'admin';
}
};
app.blade.php -
https://github.com/EvgeniiR/forum/blob/master/reso...<script>
window.App = {!! json_encode([
'user' => Auth::user(),
'signedIn' => Auth::check()
]) !!};
</script>
Примеры использования:
<div v-if="signedIn">
- проверить авторизирован ли пользователь
v-if="authorize('owns', thread)"
, где в объекте thread задан user_id - проверить, является ли владельцем.