如何禁用在Laravel Jetstream中为新注册用户创建新团队的功能



默认情况下,用户会加入他们的个人团队。然后,他们可以通过仪表板创建其他团队。

在允许显示链接和执行操作之前,导航菜单已经具备了这一点。

@can('create', LaravelJetstreamJetstream::newTeamModel())
@endcan

查看app/Actions/Fortify/CreateNewUser.php中的用户创建,没有具体提到这一点,所有用户都可以默认创建。

在数据库中,也没有具体的存储,我也找不到这个@can('create')是如何在PHP中验证的。

app/Actions/Jetstream/CreateTeam.php内部,再次提到:

Gate::forUser($user)->authorize('create', Jetstream::newTeamModel());

但同样,没有提及如何进行验证。

如何禁用在Jetstream中为新注册用户创建新团队的功能?

使用IRC后,一位参与者向我介绍了create的用法,可以在app/Policies/TeamPolicy::create中找到。

这总是返回true,从而在默认情况下为所有用户提供创建新团队的能力。

解决方案:返回false,或在此处进行特定检查。

class TeamPolicy
{
use HandlesAuthorization;
// ...
public function create(User $user)
{
return false;
}
// ...
}

最新更新