CatchAdmin是一个基于对Laravel和Element Plus进行二次开发的后台管理系统。CatchAdmin仍然采用传统的前后端分离策略,其中Laravel框架仅用作Api输出。通过这种设计,成功将管理系统模块之间的耦合降至最低。
676
stars
114
forks
source link
今天发现一个bug 一个用户多个角色的时候权限有问题 报错in_array() expects parameter 2 to be array, object given #34
Closed
567ai closed 2 years ago
PermissionsMiddleware.php 文件57行
调试发现 Cache::get(CatchCacheKeys::USER_PERMISSIONS . $user->id) 得到的是对象
而 in_array() 参数需要的是数组
所以报错
修改: 加了一个判断是否是对象如果是对象转换成数组
结果程序正常
$ss= Cache::get(CatchCacheKeys::USER_PERMISSIONS . $user->id); $ss= is_object($ss)? (array) $ss: $ss ; if (!$permission || !in_array($permission->id, $ss)) {
代码命名不规范 坐等作者的规范命名