Gerencie seus usuários com um recurso de usuário altamente personalizável para FilamentPHP com integração de filament-shield e filament-impersonate.
para filamento v2, use este repositório
Recurso de usuários
Permitir publicar recursos do usuário
Permitir usar escudo
Permitir usar representação
Permitir usar a classe Façade para personalizar o recurso do usuário atual
Integração com equipes Laravel Jetstream
modelo de usuário personalizado do arquivo de configuração
modelo de equipe personalizado do arquivo de configuração
modelo de função personalizado do arquivo de configuração
Página de perfil do usuário Laravel Jetsream
Permitir avatares de usuários/equipes
Páginas personalizadas de registro/login para Laravel Jetstream
Adicionar página OTP ao processo de registro
compositor requer tomatephp/filament-users
finalmente registre o plugin em /app/Providers/Filament/AdminPanelProvider.php
->plugin(TomatoPHPFilamentUsersFilamentUsersPlugin::make())
você pode usar o escudo para proteger seu recurso e permitir funções de usuário instalando-o primeiro
compositor requer bezhansalleh/filament-shield
Adicione a característica SpatiePermissionTraitsHasRoles ao(s) seu(s) modelo(s) de usuário:
use IlluminateFoundationAuthUser as Authenticatable;use SpatiePermissionTraitsHasRoles;class User estende Authenticatable{ use HasRoles; // ...}
Publique o arquivo de configuração e defina sua configuração:
->plugin(BezhanSallehFilamentShieldFilamentShieldPlugin::make())
Agora execute o seguinte comando para instalar o escudo:
escudo artesão php:instalar
Agora podemos publicar os ativos do pacote.
fornecedor de artesão php:publish --tag="filament-users-config"
agora na sua configuração filament-users.php
permita o escudo
/* * Escudo de Filamento do Usuário */"shield" => true,
agora limpe sua configuração
configuração do artesão php:cache
para mais informações consulte o Filament Shield
você pode usar o personate para representar o usuário instalando-o primeiro
compositor requer stechstudio/filament-impersonate
agora na sua configuração filament-users.php
permita o escudo
/* * Representação do filamento do usuário */"impersonate" => true,
agora limpe sua configuração
configuração do artesão php:cache
para mais informações verifique o Filament Impersonate
você pode usar o Laravel Jetstream Teams instalando-o primeiro
compositor requer laravel/jetstream
agora você precisa instalar o jetstream com livewire
php artesão jetstream:instale livewire
vá para jetstream.php
e permita o recurso de equipes
'features' => [// Features::termsAndPrivacyPolicy(),// Features::profilePhotos(),// Features::api(), Features::teams(['invitations' => true]),// Recursos::accountDeletion(),],
agora você precisa publicar a migração das equipes do jetstream
fornecedor de artesão php:publish --tag=jetstream-teams-migrations
agora você precisa migrar a migração das equipes
php artesão migrar
agora na sua configuração filament-users.php
permita o escudo
/* * Equipes de filamentos do usuário */"equipes" => true,
agora limpe sua configuração
configuração do artesão php:cache
você pode publicar o recurso em seu projeto
php artesão filament-users:publicar
ele publicará o recurso em seu projeto
então vá para o arquivo de configuração filament-users.php
e altere o publish_resource
para true
você pode registrar o gerenciador de relacionamento com o usuário em seu projeto
use TomatoPHPFilamentUsersFacadesFilamentUser;função pública boot() { FilamentoUser::register([ FilamentResourcesRelationManagersRelationManager::make() // Substitua pelo seu gerenciador de relacionamento personalizado ]); }
adicionamos muitos ganchos para facilitar a anexação de ações, colunas, filtros, etc.
use TomatoPHPFilamentUsersResourcesUserResourceTableUserTable;função pública boot() {UserTable::registrar([ FilamentTablesColumnsTextColumn::make('algo') ]); }
use TomatoPHPFilamentUsersResourcesUserResourceTableUserActions;função pública boot() {Ações do usuário::registrar([ FilamentTablesActionsReplicateAction::make() ]); }
use TomatoPHPFilamentUsersResourcesUserResourceTableUserFilters;função pública boot() { UserFilters::registrar([ FilamentTablesFiltersSelectFilter::make('alguma coisa') ]); }
use TomatoPHPFilamentUsersResourcesUserResourceTableUserBulkActions;função pública boot() { UserBulkActions::registrar([ FilamentTablesBulkActionsDeleteAction::make() ]); }
use TomatoPHPFilamentUsersResourcesUserResourceFormUserForm;função pública boot() { UserForm::registrar([ FilamentFormsComponentsTextInput::make('alguma coisa') ]); }
usar TomatoPHPFilamentUsersResourcesUserResourceActionsManageUserActions; usar TomatoPHPFilamentUsersResourcesUserResourceActionsEditPageActions; usar TomatoPHPFilamentUsersResourcesUserResourceActionsViewPageActions; CreatePageActions;função pública boot() { ManageUserActions::register([ FilamentoActionsAction::make('action') ]); EditPageActions::register([FilamentActionsAction::make('action') ]); ViewPageActions::register([ FilamentoActionsAction::make('action') ]); CreatePageActions::register([ FilamentoActionsAction::make('action') ]); }
use TomatoPHPFilamentUsersResourcesUserResourceInfolistUserInfolist;função pública boot() { UserInfolist::registrar([ FilamentInfolistsComponentsTextEntry::make('algo') ]); }
você pode personalizar todas as classes de recursos para serem qualquer classe desejada com o mesmo retorno do arquivo de configuração
/** * --------------------------------------------- * Construção de Recursos * ------------------------------------------------------- * se você deseja usar a classe personalizada de recurso */'resource' => [ 'table' => [ 'class' => TomatoPHPFilamentUsersResourcesUserResourceTableUserTable::class, 'filters' => TomatoPHP FilamentUsersResourcesUserResourceTableUserFilters::class, 'actions' => TomatoPHPFilamentUsersResourcesUserResourceTableUserActions::class, 'bulkActions' => TomatoPHPFilamentUsersResourcesUserResourceTable UserBulkActions::classe, ], 'form' => [ 'class' => TomatoPHPFilamentUsersResourcesUserResourceFormUserForm::class ], 'infolist' => [ 'class' => TomatoPHPFilamentUsersResourcesUserResourceInfoListUserInfoList::class ], 'pages' => [ 'list' => TomatoPHPFilamentUsersResourcesUserResourceActionsManageUserActions::class, 'create' => TomatoPHPFilamentUsersResourcesUserResourceActionsCreatePageActions::class, 'edit' => TomatoPHPFilamentUsersResourcesUserResourceActionsEditPageActions::class, 'view' => TomatoPHPFilamentUsersResourcesUserResourceActionsViewPageActions::class ] ]
você pode usar o recurso de usuário simples alterando a configuração, na configuração filament-users.php
permite simples
/** * --------------------------------------------- * Use Recurso Simples * --------------------------------------------- * altere o recurso de páginas para modais, permitindo recursos simples. */'simples' => verdadeiro,
você pode publicar o arquivo de configuração usando este comando
fornecedor de artesão php:publish --tag="filament-users-config"
você pode publicar o arquivo de idiomas usando este comando
fornecedor de artesão php:publish --tag="filament-users-lang"
se você gosta de executar testes PEST
, basta usar este comando
teste de compositor
se você quiser corrigir o estilo do código, basta usar este comando
formato do compositor
se você quiser verificar o código pelo PHPStan
basta usar este comando
análise do compositor
Confira nosso incrível TomatoPHP