首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用在Laravel中为新注册用户创建新团队的能力?

如何禁用在Laravel中为新注册用户创建新团队的能力?
EN

Stack Overflow用户
提问于 2020-10-28 11:18:43
回答 1查看 1.7K关注 0票数 4

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

在允许显示链接和采取操作之前,导航菜单具有此功能。

代码语言:javascript
复制
@can('create', Laravel\Jetstream\Jetstream::newTeamModel())
@endcan

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

查看数据库,也没有这方面的具体存储,我无法定位这个@can('create')是如何在PHP中验证的。

app/Actions/Jetstream/CreateTeam.php中再次提到这一点:

代码语言:javascript
复制
Gate::forUser($user)->authorize('create', Jetstream::newTeamModel());

但同样,没有提到验证是如何完成的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 11:36:59

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

这总是返回true,从而使所有用户在默认情况下都能够创建新的团队。

解决方案:返回false,或者在这里执行特定的检查。

代码语言:javascript
复制
class TeamPolicy
{
    use HandlesAuthorization;

    // ...

    public function create(User $user)
    {
        return false;
    }

    // ...
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64571750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档