new: shutdown | reboot on rootless user

This commit is contained in:
lollipopkit
2023-09-03 16:40:29 +08:00
parent ab09fa6614
commit 61218f9ca3
8 changed files with 95 additions and 70 deletions

View File

@@ -62,6 +62,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
widget.spi.user,
(user) async => await showPwdDialog(context, user),
widget.spi.id,
context,
);
}

View File

@@ -4,7 +4,6 @@ import 'package:provider/provider.dart';
import '../../data/model/pkg/upgrade_info.dart';
import '../../data/model/server/dist.dart';
import '../../core/utils/ui.dart';
import '../../data/model/server/server_private_info.dart';
import '../../data/provider/pkg.dart';
import '../../data/provider/server.dart';
@@ -61,8 +60,8 @@ class _PkgManagePageState extends State<PkgPage>
_scrollController.jumpTo(_scrollController.position.maxScrollExtent),
() => _scrollControllerUpdate
.jumpTo(_scrollController.position.maxScrollExtent),
(user) async => await showPwdDialog(context, user),
widget.spi.user,
context,
);
_pkgProvider.refresh();
}

View File

@@ -5,6 +5,8 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:get_it/get_it.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/media_queryx.dart';
import 'package:toolbox/core/extension/ssh_client.dart';
import 'package:toolbox/data/model/app/shell_func.dart';
import '../../../core/route.dart';
import '../../../core/utils/misc.dart';
@@ -244,13 +246,18 @@ class _ServerPageState extends State<ServerPage>
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
// TODO: sudo | on pwd request
IconButton(
onPressed: () => srv.client?.run('shutdown -h now'),
onPressed: () => srv.client?.execWithPwd(
AppShellFuncType.shutdown.cmd,
context: context,
),
icon: const Icon(Icons.power_off),
),
IconButton(
onPressed: () => srv.client?.run('reboot'),
onPressed: () => srv.client?.execWithPwd(
AppShellFuncType.reboot.cmd,
context: context,
),
icon: const Icon(Icons.refresh),
),
IconButton(