问题描述
我有一个API,可以根据表中的附加列实现多租户。
为此,我创建了一个实现 static :: addGlobalScope()和static :: creating()。
我有一个user_idXtenant_id表。在此表中,我存储用户具有的访问权限。
我的路线如下:
Route::get('{tenant_id}/products',function ($tenant_id) {
return App\Products::where(['tenant_id' => $tenant_id])->get();
})->middleware('role_or_permission:admin|seller|get-products');
Route::get('products',function () {
return App\Products::get();
})->middleware('role_or_permission:admin|seller|get-products');
这个想法是,在第一个途径中,将验证用户是否有权访问tenant_id,并且如果他具有访问权,则仅返回该tenant_id的产品(此处可以使用策略来解决问题)。
另一方面,第二条路线必须返回用户有权访问的所有tenant_id的所有产品。为此,我使用static :: addGlobalScope()设置用户可以通过以下方式访问的租户:
$builder->whereIn('tenant_id',$tenants);
问题是,如果在模型中填写了tenant_id,如何检查GlobalScope。因此,如果存在,则仅检查许可,如果不存在,则包括用户有权访问的tenant_id。
我希望我能够充分举例说明这个问题。
非常欢迎任何帮助。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)