3 namespace BookStack\Http\Controllers\Api;
5 use BookStack\Exceptions\PermissionsException;
6 use BookStack\Auth\User;
7 use BookStack\Auth\UserRepo;
9 use Illuminate\Http\Request;
11 class UserApiController extends ApiController
16 protected $printHidden = [
17 'email', 'created_at', 'updated_at', 'last_activity_at'
20 # TBD: Endpoints to create / update users
21 # protected $rules = [
28 public function __construct(User $user, UserRepo $userRepo)
31 $this->userRepo = $userRepo;
35 * Get a listing of users
37 public function list()
39 $this->checkPermission('users-manage');
41 $users = $this->userRepo->getUsersBuilder();
43 return $this->apiListingResponse($users, [
44 'id', 'name', 'slug', 'email',
45 'created_at', 'updated_at', 'last_activity_at',
46 ], $this->printHidden);
50 * View the details of a single user
52 public function read(string $id)
54 $this->checkPermission('users-manage');
56 $singleUser = $this->userRepo->getById($id);
57 $singleUser = $singleUser->makeVisible($this->printHidden);
59 return response()->json($singleUser);