]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/Api/UserApiController.php
Extend /users API endpoint
[bookstack] / app / Http / Controllers / Api / UserApiController.php
index e8b98525dd2008009e660404e48701eb43ccf678..328241a8310052887d26df46aa561cfa2ee548af 100644 (file)
@@ -13,6 +13,10 @@ class UserApiController extends ApiController
     protected $user;
     protected $userRepo;
 
+    protected $printHidden = [
+        'email', 'created_at', 'updated_at', 'last_activity_at'
+    ];
+
 # TBD: Endpoints to create / update users
 #     protected $rules = [
 #         'create' => [
@@ -28,15 +32,30 @@ class UserApiController extends ApiController
     }
 
     /**
-     * Get a listing of pages visible to the user.
+     * Get a listing of users
      */
     public function list()
     {
+        $this->checkPermission('users-manage');
+
         $users = $this->userRepo->getUsersBuilder();
 
         return $this->apiListingResponse($users, [
-            'id', 'name', 'slug',
-            'email', 'created_at', 'updated_at',
-        ]);
+            'id', 'name', 'slug', 'email',
+            'created_at', 'updated_at', 'last_activity_at',
+        ], $this->printHidden);
+    }
+
+    /**
+     * View the details of a single user
+     */
+    public function read(string $id)
+    {
+        $this->checkPermission('users-manage');
+
+        $singleUser = $this->userRepo->getById($id);
+        $singleUser = $singleUser->makeVisible($this->printHidden);
+
+        return response()->json($singleUser);
     }
 }