Create other user route
This commit is contained in:
@@ -12,6 +12,7 @@ use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Services\UserService;
|
||||
use Pest\Support\Str;
|
||||
use Propaganistas\LaravelPhone\PhoneNumber;
|
||||
|
||||
class UserController extends Controller
|
||||
@@ -57,6 +58,47 @@ class UserController extends Controller
|
||||
return response()->json(['message' => 'User created successfully']);
|
||||
}
|
||||
|
||||
public function createUserByAdmin(Request $request): JsonResponse {
|
||||
|
||||
if(Gate::denies('createOther', $request->user())){
|
||||
return response()->json(["message" => "Can't create this user"], 403);
|
||||
}
|
||||
|
||||
$request->validate([
|
||||
'phone' => ['required', 'phone:FR,national'],
|
||||
'email' => ['required', 'email:strict,rfc', 'unique:users,email'],
|
||||
]);
|
||||
|
||||
$phone = new PhoneNumber($request["phone"], 'FR');
|
||||
|
||||
$password = Str::random(12);
|
||||
|
||||
$user = User::create([
|
||||
"name" => $request["name"],
|
||||
"email" => $request["email"],
|
||||
"password" => Hash::make($password),
|
||||
"lastname" => $request["lastname"],
|
||||
"validate" => 1,
|
||||
"phone" => $phone->formatInternational(),
|
||||
]);
|
||||
|
||||
|
||||
$notification = Notification::create([
|
||||
'content' => "Nouvel utilisateur crée : {$user->name} {$user->lastname}",
|
||||
]);
|
||||
$admins = User::whereIn('role', [1, 2])->get();
|
||||
$notification->users()->attach(
|
||||
$admins->pluck('id')->toArray()
|
||||
);
|
||||
|
||||
broadcast(new UserCreated($user));
|
||||
|
||||
return response()->json([
|
||||
'message' => 'User created successfully',
|
||||
"password" => $password,
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete(Request $request): JsonResponse {
|
||||
try {
|
||||
$user = User::find($request->user()->id);
|
||||
|
||||
Reference in New Issue
Block a user