- if ($this->userRepo->isOnlyAdmin($user)) {
- session()->flash('error', 'You cannot delete the only admin');
- return redirect($user->getEditUrl());
+ $this->userRepo->destroy($user, $newOwnerId);
+
+ return redirect('/settings/users');
+ }
+
+ /**
+ * Update the user's preferred book-list display setting.
+ */
+ public function switchBooksView(Request $request, int $id)
+ {
+ return $this->switchViewType($id, $request, 'books');
+ }
+
+ /**
+ * Update the user's preferred shelf-list display setting.
+ */
+ public function switchShelvesView(Request $request, int $id)
+ {
+ return $this->switchViewType($id, $request, 'bookshelves');
+ }
+
+ /**
+ * Update the user's preferred shelf-view book list display setting.
+ */
+ public function switchShelfView(Request $request, int $id)
+ {
+ return $this->switchViewType($id, $request, 'bookshelf');
+ }
+
+ /**
+ * For a type of list, switch with stored view type for a user.
+ */
+ protected function switchViewType(int $userId, Request $request, string $listName)
+ {
+ $this->checkPermissionOrCurrentUser('users-manage', $userId);
+
+ $viewType = $request->get('view_type');
+ if (!in_array($viewType, ['grid', 'list'])) {
+ $viewType = 'list';