rlgroup / laravel-abilities-controllers
控制器的能力
0.2.1
2021-09-14 08:42 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ~6.0
README
Laravel Abilities 控制器中的包
安装
在 Laravel 5 应用程序的根目录下使用 composer 安装
composer require rlgroup/laravel-abilities-controllers
迁移
$ php artisan migrate
运行
$ php artisan db:seed --class="Rlgroup\\Abilities\\AbilitiesTableSeeder"
将到 Http/Kernel.php 中的数组 $routeMiddleware
'abilities' => \Rlgroup\Abilities\AbilitiesMiddleware::class,
任何需要读取以检查权限的地方都可以使用 routeMiddleware 能力
添加到 user.php
use Rlgroup\Abilities\UserTrait; use UserTrait;
添加到 app.js 页面
---------------------------------
import collect from 'collect.js'
Vue.prototype.actionController = (controller, method = null) => {
if (app && app.abilitiesUser) {
if (method) {
return app.abilitiesUser.indexOf(`${controller}@${method}`) > -1 || app.abilitiesUser.indexOf(`*`) > -1
} else {
// console.log(app.abilitiesUser, app.abilitiesUser.indexOf(`${controller}`))
return app.abilitiesUser.filter(r => {
return r.indexOf(`${controller}`) > -1
}).length || app.abilitiesUser.indexOf(`*`) > -1
}
}
return false
}
Vue.prototype.actionControllerLeastOne = (controllers, method = null) => {
if (app && app.abilitiesUser) {
let isCan = collect(controllers).map((controller) => {
return app.abilitiesUser.filter(r => {
return r.indexOf(`${controller}`) > -1
}).length > 0 || app.abilitiesUser.indexOf(`*`) > -1
}).contains(true);
return isCan;
}
return false;
}
-----------------------------
const app = new Vue({
data() {
return {
loading: false,
user: {},
abilities: []
}
},
computed: {
abilitiesUser() {
return Object.keys(this.abilities)
},
allAbilitiesUser() {
return this.abilities
}
},
created () {
this.$vuetify.rtl = true
axios.get(`/abilities/user`)
.then(response => {
if (response.data.status == 'ok') {
this.user = response.data.user
this.abilities = response.data.abilities
}
this.loading = true;
}).catch(error => {});
},
});
------------------------------------------------
以及需要客户端测试(VUE)的地方
actionController (action,method)
------------------------------------------------
如果项目必须使用 GUARD 连接,则必须将 GUARD 值添加到 ENV 文件中
AUTH_GUARD=