UserController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\User\CreateOrUpdateRequest;
  5. use App\Http\Resources\API\UserInfoResource;
  6. use App\Models\Role;
  7. use App\Models\User;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Hash;
  11. class UserController extends Controller
  12. {
  13. public function info()
  14. {
  15. $user = Auth::user();
  16. return new UserInfoResource($user);
  17. }
  18. public function assignRole(Request $request, string $id)
  19. {
  20. $user = User::query()->findOrFail($id);
  21. $roleName = $request->get('role_name');
  22. if ($roleName) {
  23. $role = Role::query()->where("guard_name", "api")->where('name', $roleName)->firstOrFail();
  24. $user->role_id = $role->id;
  25. $user->save();
  26. }
  27. $roles = $roleName ? [$roleName] : [];
  28. $user->syncRoles($roles);
  29. return $this->noContent();
  30. }
  31. public function index(){
  32. $user = User::all();
  33. return UserInfoResource::collection($user);
  34. }
  35. /**
  36. * add a new User
  37. * @return \Illuminate\Http\Response
  38. */
  39. public function store(CreateOrUpdateRequest $request){
  40. $password = Hash::make($request->password);
  41. $user=$request->all();
  42. $user['password']=$password;
  43. User::create([
  44. ...$user,
  45. 'created_by' => Auth::id(),
  46. ]);
  47. // TODO:发送邮箱给目标用户
  48. return $this->created();
  49. }
  50. public function destroy(string $id)
  51. {
  52. }
  53. public function show(string $id)
  54. {
  55. }
  56. public function update(CreateOrUpdateRequest $request, string $id)
  57. {
  58. }
  59. }