Laravel正在更新用户 - 仅限管理员和用户

时间:2014-07-13 02:59:53

标签: laravel laravel-4

更新用户帐户时,只允许用户本身和管理员这样做的最佳方法是什么?

我使用multiauth,我能想到的唯一方法是:

public function update($id)
{
    if (Auth::admin()->check() || Auth::user()->get()->id == $id)
    {
        // Allow update
    }
}

有更清洁的方法吗?

1 个答案:

答案 0 :(得分:0)

您放置此代码的位置取决于您的架构。

如果它是一个简单的设置,模型可能是它的理想之地:

class User extends Eloquent implements .... {

    protected static function boot($id)
    {
        static::updating(function($user)
        {
            return $user->canCurrentUserUpdate();
        });
    }

    protected function canCurrentUserUpdate()
    {
        return Auth::admin()->check() || Auth::user()->get()->id == $this->id;
    }
}