【问题标题】:Laravel if model has attribute check against authLaravel 如果模型具有针对 auth 的属性检查
【发布时间】:2018-01-05 01:02:33
【问题描述】:

我有一个 Laravel 5.4 应用程序,其中 auth 用户属于一家公司, 这是在user->company_id 中设置的。

其他一些模型也有 company_id,因此来自同一公司的不同用户可以访问/查看/编辑这些记录。

在我的路由中,我目前使用资源路由,那么如果身份验证用户可以从相应的控制器访问索引、showeditupdatedestroy 方法,我如何以一般方式检查?

【问题讨论】:

  • 我建议你在 Authorisation 上阅读以下 Laravel 文档。

标签: php laravel authentication laravel-5.4


【解决方案1】:

您可以在所有带有 company_id 的模型中执行一个方法:

public function isOwnedBy($companyId)
{
   return $this->company_id == $companyId ? true : false;
}

然后,无论何时您想要编辑、显示...该模型,您只需在执行此操作之前调用此方法。假设您有一个包含“company_id”字段的页面。

$page = Page::first(); // just some random page

if(!$page->isOwnedBy(\Auth::user()->company_id))
    // throw an exception or do something that the user can't continue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2014-04-20
    • 2017-10-07
    相关资源
    最近更新 更多