]> BookStack Code Mirror - bookstack/blob - app/Http/Controllers/Api/UserApiController.php
Merge branch 'api-endpoint-users' into users_api
[bookstack] / app / Http / Controllers / Api / UserApiController.php
1 <?php
2
3 namespace BookStack\Http\Controllers\Api;
4
5 use BookStack\Exceptions\PermissionsException;
6 use BookStack\Auth\User;
7 use BookStack\Auth\UserRepo;
8 use Exception;
9 use Illuminate\Http\Request;
10
11 class UserApiController extends ApiController
12 {
13     protected $user;
14     protected $userRepo;
15
16     protected $printHidden = [
17         'email', 'created_at', 'updated_at', 'last_activity_at'
18     ];
19
20 # TBD: Endpoints to create / update users
21 #     protected $rules = [
22 #         'create' => [
23 #         ],
24 #         'update' => [
25 #         ],
26 #     ];
27
28     public function __construct(User $user, UserRepo $userRepo)
29     {
30         $this->user = $user;
31         $this->userRepo = $userRepo;
32     }
33
34     /**
35      * Get a listing of users
36      */
37     public function list()
38     {
39         $this->checkPermission('users-manage');
40
41         $users = $this->userRepo->getUsersBuilder();
42
43         return $this->apiListingResponse($users, [
44             'id', 'name', 'slug', 'email',
45             'created_at', 'updated_at', 'last_activity_at',
46         ], $this->printHidden);
47     }
48
49     /**
50      * View the details of a single user
51      */
52     public function read(string $id)
53     {
54         $this->checkPermission('users-manage');
55
56         $singleUser = $this->userRepo->getById($id);
57         $singleUser = $singleUser->makeVisible($this->printHidden);
58
59         return response()->json($singleUser);
60     }
61 }