默认情况下,用户将加入他们的个人团队。然后,通过仪表板,他们可以创建更多的团队。
在允许显示链接和采取操作之前,导航菜单具有此功能。
@can('create', Laravel\Jetstream\Jetstream::newTeamModel())
@endcan查看app/Actions/Fortify/CreateNewUser.php中的用户创建,没有具体提到这一点,所有用户默认都可以创建。
查看数据库,也没有这方面的具体存储,我无法定位这个@can('create')是如何在PHP中验证的。
在app/Actions/Jetstream/CreateTeam.php中再次提到这一点:
Gate::forUser($user)->authorize('create', Jetstream::newTeamModel());但同样,没有提到验证是如何完成的。
如何禁用在Jetstream中为新注册用户创建新团队的能力?
发布于 2020-10-28 11:36:59
在使用了IRC之后,另一位参与者向我介绍了create的用法,它可以在app/Policies/TeamPolicy::create中找到。
这总是返回true,从而使所有用户在默认情况下都能够创建新的团队。
解决方案:返回false,或者在这里执行特定的检查。
class TeamPolicy
{
use HandlesAuthorization;
// ...
public function create(User $user)
{
return false;
}
// ...
}https://stackoverflow.com/questions/64571750
复制相似问题