return User::query()->with('roles', 'avatar')->orderBy('name', 'asc')->get();
}
+ /**
+ * Get all users as Builder for API
+ */
+ public function getUsersBuilder(): Builder
+ {
+ $query = User::query()->select(['*']);
+ return $query;
+ }
/**
* Get all the users with their permissions in a paginated format.
*/
--- /dev/null
+<?php
+
+namespace BookStack\Http\Controllers\Api;
+
+use BookStack\Exceptions\PermissionsException;
+use BookStack\Auth\User;
+use BookStack\Auth\UserRepo;
+use Exception;
+use Illuminate\Http\Request;
+
+class UserApiController extends ApiController
+{
+ protected $user;
+ protected $userRepo;
+
+# TBD: Endpoints to create / update users
+# protected $rules = [
+# 'create' => [
+# ],
+# 'update' => [
+# ],
+# ];
+
+ public function __construct(User $user, UserRepo $userRepo)
+ {
+ $this->user = $user;
+ $this->userRepo = $userRepo;
+ }
+
+ /**
+ * Get a listing of pages visible to the user.
+ */
+ public function list()
+ {
+ $users = $this->userRepo->getUsersBuilder();
+
+ return $this->apiListingResponse($users, [
+ 'id', 'name', 'slug',
+ 'email', 'created_at', 'updated_at',
+ ]);
+ }
+}
Route::get('shelves/{id}', 'BookshelfApiController@read');
Route::put('shelves/{id}', 'BookshelfApiController@update');
Route::delete('shelves/{id}', 'BookshelfApiController@delete');
+
+Route::get('users', 'UserApiController@list');