feat: add permanent trust functionality for devices with corresponding API and UI updates

This commit is contained in:
shuaiplus
2026-05-12 18:01:04 +08:00
parent 83a1fc2376
commit 2685741386
15 changed files with 140 additions and 2 deletions
+8
View File
@@ -667,6 +667,14 @@ export async function revokeAuthorizedDeviceTrust(
if (!resp.ok) throw new Error(t('txt_revoke_device_trust_failed'));
}
export async function trustAuthorizedDevicePermanently(
authedFetch: AuthedFetch,
deviceIdentifier: string
): Promise<void> {
const resp = await authedFetch(`/api/devices/authorized/${encodeURIComponent(deviceIdentifier)}/permanent`, { method: 'POST' });
if (!resp.ok) throw new Error(t('txt_trust_device_permanently_failed'));
}
export async function revokeAllAuthorizedDeviceTrust(authedFetch: AuthedFetch): Promise<void> {
const resp = await authedFetch('/api/devices/authorized', { method: 'DELETE' });
if (!resp.ok) throw new Error(t('txt_revoke_all_device_trust_failed'));
+8
View File
@@ -1083,6 +1083,14 @@ export function createDemoMainRoutesProps(base: AppMainRoutesProps, notify: Noti
)));
notify('success', t('txt_device_authorization_revoked'));
},
onTrustDevicePermanently: (device) => {
state.setAuthorizedDevices((prev) => prev.map((item) => (
item.identifier === device.identifier && item.trusted
? { ...item, trustedUntil: '2099-12-31T23:59:59.000Z', revisionDate: new Date().toISOString() }
: item
)));
notify('success', t('txt_device_trusted_permanently'));
},
onRemoveDevice: (device) => {
state.setAuthorizedDevices((prev) => prev.filter((item) => item.identifier !== device.identifier));
notify('success', t('txt_device_removed'));
+6
View File
@@ -690,6 +690,12 @@ const en: Record<string, string> = {
"txt_revoke_all_device_trust_failed": "Failed to revoke all device trust",
"txt_revoke_trust": "Revoke Trust",
"txt_untrust": "Untrust",
"txt_trust_permanently": "Trust permanently",
"txt_trust_device_permanently": "Trust device permanently",
"txt_trust_device_permanently_for_name": "Upgrade \"{name}\" from 30-day trust to permanent trust?",
"txt_trust_device_permanently_failed": "Failed to trust device permanently",
"txt_device_trusted_permanently": "Device trusted permanently",
"txt_permanent_trust": "Permanent trust",
"txt_update_device_note_failed": "Update device note failed",
"txt_role": "Role",
"txt_save": "Save",
+6
View File
@@ -690,6 +690,12 @@ const es: Record<string, string> = {
"txt_revoke_all_device_trust_failed": "Error al revocar la confianza de todos los dispositivos",
"txt_revoke_trust": "Revocar confianza",
"txt_untrust": "Quitar confianza",
"txt_trust_permanently": "Confiar permanentemente",
"txt_trust_device_permanently": "Confiar permanentemente en el dispositivo",
"txt_trust_device_permanently_for_name": "¿Actualizar \"{name}\" de confianza de 30 días a confianza permanente?",
"txt_trust_device_permanently_failed": "Error al confiar permanentemente en el dispositivo",
"txt_device_trusted_permanently": "Dispositivo confiado permanentemente",
"txt_permanent_trust": "Confianza permanente",
"txt_update_device_note_failed": "Error al actualizar la nota del dispositivo",
"txt_role": "Rol",
"txt_save": "Guardar",
+6
View File
@@ -690,6 +690,12 @@ const ru: Record<string, string> = {
"txt_revoke_all_device_trust_failed": "Не удалось отозвать все доверие устройств.",
"txt_revoke_trust": "Отозвать доверие",
"txt_untrust": "Не доверять",
"txt_trust_permanently": "Доверять постоянно",
"txt_trust_device_permanently": "Постоянно доверять устройству",
"txt_trust_device_permanently_for_name": "Повысить доверие к «{name}» с 30 дней до постоянного?",
"txt_trust_device_permanently_failed": "Не удалось постоянно доверять устройству.",
"txt_device_trusted_permanently": "Устройство постоянно доверено",
"txt_permanent_trust": "Постоянное доверие",
"txt_update_device_note_failed": "Не удалось обновить примечание об устройстве.",
"txt_role": "Роль",
"txt_save": "Сохранить",
+6
View File
@@ -690,6 +690,12 @@ const zhCN: Record<string, string> = {
"txt_revoke_all_device_trust_failed": "撤销所有设备信任失败",
"txt_revoke_trust": "撤销信任",
"txt_untrust": "不信任",
"txt_trust_permanently": "永久信任",
"txt_trust_device_permanently": "永久信任设备",
"txt_trust_device_permanently_for_name": "确认把“{name}”从 30 天信任升级为永久信任吗?",
"txt_trust_device_permanently_failed": "永久信任设备失败",
"txt_device_trusted_permanently": "设备已永久信任",
"txt_permanent_trust": "永久信任",
"txt_update_device_note_failed": "更新设备备注失败",
"txt_role": "角色",
"txt_save": "保存",
+6
View File
@@ -690,6 +690,12 @@ const zhTW: Record<string, string> = {
"txt_revoke_all_device_trust_failed": "撤銷所有設備信任失敗",
"txt_revoke_trust": "撤銷信任",
"txt_untrust": "不信任",
"txt_trust_permanently": "永久信任",
"txt_trust_device_permanently": "永久信任設備",
"txt_trust_device_permanently_for_name": "確認把“{name}”從 30 天信任升級為永久信任嗎?",
"txt_trust_device_permanently_failed": "永久信任設備失敗",
"txt_device_trusted_permanently": "設備已永久信任",
"txt_permanent_trust": "永久信任",
"txt_update_device_note_failed": "更新設備備註失敗",
"txt_role": "角色",
"txt_save": "保存",