Create other user route

This commit is contained in:
T'JAMPENS QUENTIN p2406187
2026-02-11 14:51:28 +01:00
parent accbbe31d9
commit 5e232fd0af
3 changed files with 48 additions and 0 deletions
+42
View File
@@ -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);