<?php declare (strict_types = 1); namespace App\Nova; use Auth; use Illuminate\Http\Request; use Illuminate\Validation\Rules; use Laravel\Nova\Fields\Password; use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; use Laravel\Nova\Http\Requests\NovaRequest; class User extends Resource { public static function authorizedToCreate(Request $request) { if (Auth::user()) { return (Auth::user()->role === 'admin') ? true : false; } return false; } public static $model = \App\Models\User::class; public static $title = 'email'; public static $search = [ 'name', 'email', ]; public function fields(NovaRequest $request) { return [ Text::make('Name') ->sortable() ->rules('required', 'max:255'), Text::make('Email') ->sortable() ->rules('required', 'email', 'max:254') ->creationRules('unique:users,email') ->updateRules('unique:users,email,{{resourceId}}'), Password::make('Password') ->onlyOnForms() ->creationRules('required', Rules\Password::defaults()) ->updateRules('nullable', Rules\Password::defaults()), Select::make('Role') ->options([ 'admin' => 'admin', 'analyst' => 'analyst', ]) ->creationRules('required') ->updateRules('required'), ]; } public function cards(NovaRequest $request) { return []; } public function filters(NovaRequest $request) { return []; } public function lenses(NovaRequest $request) { return []; } public function actions(NovaRequest $request) { return []; } }