X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/17969c0bbfbb96911405a9911f99bb56c1a968c7..refs/pull/1366/head:/app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 63de0bc44..1bb5d46cd 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -299,7 +299,6 @@ class UserController extends Controller */ public function changeSort(string $id, string $type, Request $request) { - // TODO - Test this endpoint $validSortTypes = ['books', 'bookshelves']; if (!in_array($type, $validSortTypes)) { return redirect()->back(500); @@ -307,6 +306,28 @@ class UserController extends Controller return $this->changeListSort($id, $request, $type); } + /** + * Update the stored section expansion preference for the given user. + * @param string $id + * @param string $key + * @param Request $request + * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response + */ + public function updateExpansionPreference(string $id, string $key, Request $request) + { + $this->checkPermissionOrCurrentUser('users-manage', $id); + $keyWhitelist = ['home-details']; + if (!in_array($key, $keyWhitelist)) { + return response("Invalid key", 500); + } + + $newState = $request->get('expand', 'false'); + + $user = $this->user->findOrFail($id); + setting()->putUser($user, 'section_expansion#' . $key, $newState); + return response("", 204); + } + /** * Changed the stored preference for a list sort order. * @param int $userId