record permission

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2022-09-22 09:55:34 +08:00
parent e74f155cb6
commit e7e3494dc9
38 changed files with 126 additions and 21 deletions

View File

@@ -436,6 +436,9 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin {
enabled: enabled),
_OptionCheckBox(context, 'Enable Remote Restart', 'enable-remote-restart',
enabled: enabled),
_OptionCheckBox(
context, 'Enable Recording Session', 'enable-record-session',
enabled: enabled),
_OptionCheckBox(context, 'Enable remote configuration modification',
'allow-remote-config-modification',
enabled: enabled),

View File

@@ -411,6 +411,13 @@ class _PrivilegeBoardState extends State<_PrivilegeBoard> {
client.restart = enabled;
});
}, null),
buildPermissionIcon(client.recording, iconRecording, (enabled) {
bind.cmSwitchPermission(
connId: client.id, name: "recording", enabled: enabled);
setState(() {
client.recording = enabled;
});
}, null),
],
)),
],

View File

@@ -354,19 +354,25 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
}
Widget _buildRecording(BuildContext context) {
return Consumer<RecordingModel>(
builder: (context, value, child) => IconButton(
tooltip: value.start
? translate('Stop session recording')
: translate('Start session recording'),
onPressed: () => value.toggle(),
icon: Icon(
value.start
? Icons.pause_circle_filled
: Icons.videocam_outlined,
color: _MenubarTheme.commonColor,
),
));
return Consumer<FfiModel>(builder: ((context, value, child) {
if (value.permissions['recording'] != false) {
return Consumer<RecordingModel>(
builder: (context, value, child) => IconButton(
tooltip: value.start
? translate('Stop session recording')
: translate('Start session recording'),
onPressed: () => value.toggle(),
icon: Icon(
value.start
? Icons.pause_circle_filled
: Icons.videocam_outlined,
color: _MenubarTheme.commonColor,
),
));
} else {
return Offstage();
}
}));
}
Widget _buildClose(BuildContext context) {