Skip to content

Commit 90a82f1

Browse files
committed
Fix and enhance GPG encryption/decryption in File Manager
1 parent 1017685 commit 90a82f1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+109
-45
lines changed

authentic-funcs.pl

+18-19
Original file line numberDiff line numberDiff line change
@@ -350,19 +350,27 @@ sub get_theme_language
350350

351351
sub get_user_allowed_gpg_keys
352352
{
353-
my ($switch_to_user, $list_avoided_system_keys) = @_;
353+
my ($switch_to_user, $list_avoided_system_keys, $self) = @_;
354+
my %keys_;
355+
356+
# Also get the keys for the root user, when operating on virtual server
357+
# so the master admin will see all root keys, plus the keys from given
358+
# virtual server
359+
my ($user_level) = get_user_level();
360+
if (!$user_level && !$self) {
361+
my ($root_keys) = get_user_allowed_gpg_keys($remote_user, $list_avoided_system_keys, 'self');
362+
%keys_ = %{$root_keys};
363+
}
354364

355365
# Switch to remove user first
356-
switch_to_given_unix_user($switch_to_user);
366+
my ($switched_user) = switch_to_given_unix_user($switch_to_user);
357367

358368
# GNUPG lib target
359369
# For Usermin `gnupg` for Webmin `webmin`
360-
my $target = foreign_available('gnupg') ? 'gnupg' : 'webmin';
370+
my $target = foreign_exists('gnupg') ? 'gnupg' : 'webmin';
361371

362372
# As we call it not from the module set it manually
363373
# to bypass init_config() call leading to an error
364-
# Although, the module itself must be available for
365-
# the given user to work in Usermin
366374
$module_name = $target;
367375

368376
my $gpglib = $root_directory . "/$target/gnupg-lib.pl";
@@ -375,31 +383,21 @@ sub get_user_allowed_gpg_keys
375383
# may be available, it would be possible to list the keys on dropdown too,
376384
# as those keys are distributed and should never be displayed to the users.
377385
# If one of us needs the keys to be displayed on the dropdown we need to hold
378-
# Alt key before clicking Encrypt/Decrypt entry on File Manager context menu
386+
# Alt key before clicking Encrypt entry on File Manager context menu
379387
my @keys_avoided = ('11F63C51', 'F9232D77', 'D9C821AB');
380388
my @keys = list_keys_sorted();
381389
my @keys_secret = sort {lc($a->{'name'}->[0]) cmp lc($b->{'name'}->[0])} list_secret_keys();
382-
my %keys_;
383-
my %keys_secret_;
384390

385391
foreach my $k (@keys) {
386392
my $key = substr($k->{'key'}, -8, 8);
387393
my $name = $k->{'name'}->[0];
388394
$name =~ s/\(.*?\)//gs;
389395
if ($list_avoided_system_keys || (!$list_avoided_system_keys && !grep(/^$key$/, @keys_avoided))) {
390-
$keys_{ $k->{'key'} } = trim($name) . " ($k->{'email'}->[0] [$key/$k->{'size'}, $k->{'date'}])";
391-
}
392-
}
393-
foreach my $k (@keys_secret) {
394-
my $key = substr($k->{'key'}, -8, 8);
395-
my $name = $k->{'name'}->[0];
396-
$name =~ s/\(.*?\)//gs;
397-
if ($list_avoided_system_keys || (!$list_avoided_system_keys && !grep(/^$k->{'key'}$/, @keys_avoided))) {
398-
$keys_secret_{ $k->{'key'} } =
399-
trim($name) . " ($k->{'email'}->[0] [$key/$k->{'size'}, $k->{'date'}])";
396+
$keys_{ $k->{'key'} } =
397+
trim($name) . " ($k->{'email'}->[0] [$switched_user] [$key/$k->{'size'}, $k->{'date'}])";
400398
}
401399
}
402-
return (\%keys_, \%keys_secret_, $gpgpath);
400+
return (\%keys_, $gpgpath);
403401
}
404402
}
405403

@@ -454,6 +452,7 @@ sub switch_to_given_unix_user
454452
if ($username ne $remote_user);
455453
$ENV{'USER'} = $ENV{'LOGNAME'} = $username;
456454
$ENV{'HOME'} = $uinfo[7];
455+
return ($username, $uinfo[7]);
457456
}
458457
}
459458
}

authentic-lib.pl

+1-2
Original file line numberDiff line numberDiff line change
@@ -1878,11 +1878,10 @@ sub get_xhr_request
18781878
my $module = 'filemin'; # $in{'xhr-get_gpg_keys_cmodule'};
18791879
exit if (!foreign_available($module));
18801880
my $jailed_user = get_fm_jailed_user($module, 1);
1881-
my ($public, $secret, $gpgpath) =
1881+
my ($public, $gpgpath) =
18821882
get_user_allowed_gpg_keys($jailed_user, $in{'xhr-get_gpg_keys_all'});
18831883
my %keys;
18841884
$keys{'public'} = $public;
1885-
$keys{'secret'} = $secret;
18861885
$keys{'gpgpath'} = $gpgpath;
18871886
print convert_to_json(\%keys);
18881887
} elsif ($in{'xhr-get_user_level'} eq '1') {

extensions/file-manager/file-manager.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
334 Bytes
Binary file not shown.

extensions/file-manager/gpg.cgi

+45-21
Original file line numberDiff line numberDiff line change
@@ -14,58 +14,78 @@ do("$ENV{'THEME_ROOT'}/extensions/file-manager/file-manager-lib.pl");
1414
my @entries_list = get_entries_list();
1515
my %errors;
1616
my $status;
17-
my $action = $in{'action'};
18-
my $action_name = $action eq 'encrypt' ? 'encrypted' : 'decrypted';
19-
my $delete = $in{'delete'};
20-
my $passphrase = $in{'passphrase'};
21-
my $safe_mode = $config{'config_portable_module_filemanager_files_safe_mode'} ne 'false';
17+
my $action = $in{'action'};
18+
my $key = quotemeta($in{'key'});
19+
my $delete = $in{'delete'};
20+
my $passphrase = $in{'passphrase'};
21+
my $keyuser = $in{'keyuser'};
22+
my $homeuser = $in{'homeuser'};
23+
my $safe_mode = $config{'config_portable_module_filemanager_files_safe_mode'} ne 'false';
2224

2325
my $gpgpath = get_gpg_path();
2426
my $no_command;
2527

28+
# Get user level
29+
my ($user_level) = get_user_level();
30+
31+
# In case this is a master admin login,
32+
# and the key to encrypt data belonging
33+
# to /root, do not switch to the current
34+
# home directory user and use that instead
35+
my $forceuser;
36+
if (!$user_level && $keyuser) {
37+
$forceuser = $keyuser;
38+
}
39+
2640
# Set user env and switch to remote user first
27-
switch_to_given_unix_user();
41+
switch_to_given_unix_user($forceuser);
2842

2943
foreach my $name (@entries_list) {
30-
my ($iname, $fname, $fext);
44+
my ($iname);
3145
my $gpg;
3246

3347
$iname = $name;
48+
$iname .= ($key ? ("_" . substr($key, 0, 6)) : '');
3449

35-
# Clean name when decrypting
50+
# Clean extension name when decrypting
3651
if ($action eq "decrypt") {
37-
$iname =~ s/\.(gpg|pgp)$//;
38-
$iname =~ s/(?|(_encrypted\(\d+\))|(_encrypted))//;
52+
$iname =~ s/(_[a-h0-9]+\.gpg|pgp)$//i;
3953
}
40-
($fname, $fext) = file_name_extension_splitter($iname);
41-
$fext = ".$fext" if ($fext);
42-
$iname = $fname . "_" . $action_name;
54+
4355
my $ffext;
4456
$ffext = ".gpg" if ($action eq "encrypt");
4557

4658
# Check if file exist
47-
if ($safe_mode && -e "$cwd/$iname$fext$ffext") {
48-
my $__ = 1;
59+
if ($safe_mode && -e "$cwd/$iname$ffext") {
60+
my $__ = 0;
4961
for (;;) {
50-
my $niname = "$iname(" . $__++ . ")";
51-
if (!-e "$cwd/$niname$fext$ffext") {
52-
$iname = "$niname$fext";
62+
$__++;
63+
my $niname = "$iname(" . $__ . ")";
64+
if ($action eq 'decrypt') {
65+
my ($fname, $fext) = file_name_extension_splitter($iname);
66+
$niname = "$fname(" . $__ . ")" . ($fext ? ".$fext" : '');
67+
}
68+
if (!-e "$cwd/$niname$ffext") {
69+
$iname = "$niname$ffext";
5370
last;
5471
}
5572
}
5673
} else {
57-
$iname .= $fext;
74+
$iname = "$iname$ffext";
5875
unlink_file("$cwd/$iname$ffext") if (-e "$cwd/$iname$ffext");
5976
}
6077
$status = 0;
6178

6279
if ($action eq "encrypt") {
63-
my $key = quotemeta($in{'key'});
6480
my $fpath = "$cwd/$name";
6581
$gpg =
66-
"cd @{[quotemeta($cwd)]} && $gpgpath --encrypt --always-trust --output @{[quotemeta($iname)]}.gpg --recipient $key @{[quotemeta($fpath)]}";
82+
"cd @{[quotemeta($cwd)]} && $gpgpath --encrypt --always-trust --output @{[quotemeta($iname)]} --recipient $key @{[quotemeta($fpath)]}";
6783
$status = system($gpg);
6884

85+
# Set file owner in case was encrypted usign master admin keys
86+
system("chown --reference=" . quotemeta($cwd) . " " . quotemeta("$cwd/$iname"))
87+
if (!$status && $homeuser && !$user_level);
88+
6989
} elsif ($action eq "decrypt") {
7090
my $extra;
7191
if ($passphrase) {
@@ -83,6 +103,10 @@ foreach my $name (@entries_list) {
83103
print $fh $passphrase;
84104
close $fh;
85105
$status = $?;
106+
107+
# Set file owner in case was decrypted usign master admin keys
108+
system("chown --reference=" . quotemeta($cwd) . " " . quotemeta("$cwd/$iname"))
109+
if (!$status && $homeuser && !$user_level);
86110
}
87111

88112
if ($delete && $status == 0) {

lang/af.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Dien ondersteuningskaartjie in met aangehegte
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Dwing om stelselinligting te verfris
12691269
theme_xhred_disk_quota_error_title=Buite kwota
12701270
theme_xhred_disk_quota_error_message=geen spasie oor op die toestel nie
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Gebruik hoofadministrateursleutel vir dekripsie

lang/ar.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=إرسال تذكرة دعم مع معلوم
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=القوة لتحديث معلومات النظام
12691269
theme_xhred_disk_quota_error_title=خارج الحصة
12701270
theme_xhred_disk_quota_error_message=لم يتبقى مساحة في الجهاز
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=استخدم مفتاح المسؤول الرئيسي لفك التشفير

lang/be.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Адправіць білет у службу
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Прымусова абнавіць сістэмную інфармацыю
12691269
theme_xhred_disk_quota_error_title=Па-за квоты
12701270
theme_xhred_disk_quota_error_message=На прыладзе не засталося месца
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Выкарыстоўвайце галоўны ключ адміністратара для расшыфроўкі

lang/bg.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Изпратете билет за поддр
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Принудително обновяване на системната информация
12691269
theme_xhred_disk_quota_error_title=Извън квотата
12701270
theme_xhred_disk_quota_error_message=Няма повече свободно място на устройството
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Използвайте главния администраторски ключ за декриптиране

lang/ca.auto

+1
Original file line numberDiff line numberDiff line change
@@ -583,3 +583,4 @@ theme_xhred_tooltip_support_ticket=Envieu el bitllet de suport amb la informaci
583583
theme_xhred_tooltip_side_slider_refresh_sysinfo=Força per actualitzar la informació del sistema
584584
theme_xhred_disk_quota_error_title=Fora de quota
585585
theme_xhred_disk_quota_error_message=no queda espai lliure al dispositiu
586+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Utilitzeu la clau mestra d'administrador per al desxifrat

lang/cs.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1110,3 +1110,4 @@ theme_xhred_tooltip_support_ticket=Odešlete lístek podpory s připojenými inf
11101110
theme_xhred_tooltip_side_slider_refresh_sysinfo=Vynutit aktualizaci systémových informací
11111111
theme_xhred_disk_quota_error_title=Mimo kvótu
11121112
theme_xhred_disk_quota_error_message=Na zařízení nezbývá místo
1113+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=K dešifrování použijte hlavní klíč správce

lang/da.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1180,3 +1180,4 @@ theme_xhred_tooltip_support_ticket=Indsend supportbillet med vedhæftede systemo
11801180
theme_xhred_tooltip_side_slider_refresh_sysinfo=Tving til at opdatere systemoplysninger
11811181
theme_xhred_disk_quota_error_title=Uden for kvote
11821182
theme_xhred_disk_quota_error_message=Ikke mere plads på enheden
1183+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Brug hovedadministratornøgle til dekryptering

lang/de.auto

+1
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,4 @@ theme_xhred_tooltip_support_ticket=Senden Sie ein Support-Ticket mit angehängte
167167
theme_xhred_tooltip_side_slider_refresh_sysinfo=Erzwingen Sie die Aktualisierung der Systeminformationen
168168
theme_xhred_disk_quota_error_title=Außerhalb der Quote
169169
theme_xhred_disk_quota_error_message=Kein Speicherplatz auf Gerät
170+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Verwenden Sie den Hauptadministratorschlüssel für die Entschlüsselung

lang/el.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Υποβάλετε δελτίο υποστή
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Αναγκαστική ανανέωση πληροφοριών συστήματος
12691269
theme_xhred_disk_quota_error_title=Εκτός ποσόστωσης
12701270
theme_xhred_disk_quota_error_message=Δεν υπάρχει χώρος στην συσκευή
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Χρησιμοποιήστε το κύριο κλειδί διαχειριστή για αποκρυπτογράφηση

lang/en

+2-1
Original file line numberDiff line numberDiff line change
@@ -1327,4 +1327,5 @@ theme_sysinfo_vmforum=Virtualmin Community
13271327
theme_xhred_tooltip_support_ticket=Submit support ticket with attached system information; hold ⎇ key to copy support link to clipboard
13281328
theme_xhred_tooltip_side_slider_refresh_sysinfo=Force to refresh system information
13291329
theme_xhred_disk_quota_error_title=Out of quota
1330-
theme_xhred_disk_quota_error_message=No space left on device
1330+
theme_xhred_disk_quota_error_message=No space left on device
1331+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Use master administrator key for decryption

lang/es.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1179,3 +1179,4 @@ theme_xhred_tooltip_support_ticket=Envíe un ticket de soporte con la informaci
11791179
theme_xhred_tooltip_side_slider_refresh_sysinfo=Forzar la actualización de la información del sistema
11801180
theme_xhred_disk_quota_error_title=Fuera de cuota
11811181
theme_xhred_disk_quota_error_message=no queda espacio en el dispositivo
1182+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Use la clave de administrador maestro para el descifrado

lang/eu.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Bidali laguntza-txartela erantsita sistemaren
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Behartu sistemaren informazioa freskatzera
12691269
theme_xhred_disk_quota_error_title=Kupotik kanpo
12701270
theme_xhred_disk_quota_error_message=Ez da lekurik geratzen gailuan
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Erabili administratzaile-gako nagusia deszifratzeko

lang/fa.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=ارسال تیکت پشتیبانی با ا
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=اجباری برای تازه کردن اطلاعات سیستم
12691269
theme_xhred_disk_quota_error_title=خارج از سهمیه
12701270
theme_xhred_disk_quota_error_message=هیچ فضایی در دستگاه باقی نمانده است
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=برای رمزگشایی از کلید مدیر اصلی استفاده کنید

lang/fi.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Lähetä tukilippu ja liitteenä olevat järj
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Pakota päivittämään järjestelmätiedot
12691269
theme_xhred_disk_quota_error_title=Kiintiö loppu
12701270
theme_xhred_disk_quota_error_message=laitteessa ei ole tilaa jäljellä
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Käytä pääjärjestelmänvalvojan avainta salauksen purkamiseen

lang/fr.auto

+1
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,4 @@ theme_xhred_tooltip_support_ticket=Soumettre un ticket d'assistance avec les inf
134134
theme_xhred_tooltip_side_slider_refresh_sysinfo=Forcer à actualiser les informations système
135135
theme_xhred_disk_quota_error_title=Hors quota
136136
theme_xhred_disk_quota_error_message=Pas d'espace disponible sur le périphérique
137+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Utiliser la clé d'administrateur principal pour le déchiffrement

lang/he.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=שלח כרטיס תמיכה עם מידע מ
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=הכריח לרענן את מידע המערכת
12691269
theme_xhred_disk_quota_error_title=מחוץ למכסה
12701270
theme_xhred_disk_quota_error_message=אין עוד מקום במכשיר
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=השתמש במפתח מנהל ראשי לפענוח

lang/hr.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Pošaljite ulaznicu za podršku s priloženim
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Prisilno osvježavanje informacija o sustavu
12691269
theme_xhred_disk_quota_error_title=Izvan kvote
12701270
theme_xhred_disk_quota_error_message=Nema više mjesta na uređaju
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Za dešifriranje koristite glavni administratorski ključ

lang/hu.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Támogatási jegy benyújtása csatolt rendsz
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=A rendszerinformációk frissítésének kényszerítése
12691269
theme_xhred_disk_quota_error_title=Túl a kvótán
12701270
theme_xhred_disk_quota_error_message=Nincs hely az eszközön
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Használja a fő rendszergazdai kulcsot a visszafejtéshez

lang/it.auto

+1
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,4 @@ theme_xhred_tooltip_support_ticket=Invia un ticket di supporto con le informazio
6464
theme_xhred_tooltip_side_slider_refresh_sysinfo=Forza l'aggiornamento delle informazioni di sistema
6565
theme_xhred_disk_quota_error_title=Fuori quota
6666
theme_xhred_disk_quota_error_message=Nessuno spazio rimasto sul dispositivo
67+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Utilizzare la chiave dell'amministratore principale per la decrittografia

lang/ja.auto

+1
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,4 @@ theme_xhred_tooltip_support_ticket=システム情報を添付したサポート
176176
theme_xhred_tooltip_side_slider_refresh_sysinfo=システム情報を強制的に更新する
177177
theme_xhred_disk_quota_error_title=クォータを超えています
178178
theme_xhred_disk_quota_error_message=デバイスにスペースが残っていません
179+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=復号化にマスター管理者キーを使用する

lang/ko.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=첨부된 시스템 정보와 함께 지원
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=시스템 정보를 강제로 새로 고침
12691269
theme_xhred_disk_quota_error_title=할당량 부족
12701270
theme_xhred_disk_quota_error_message=기기에 남은 공간이 없습니다
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=복호화에 마스터 관리자 키 사용

lang/lt.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Pateikti palaikymo bilietą su pridedama sist
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Priversti atnaujinti sistemos informaciją
12691269
theme_xhred_disk_quota_error_title=Kvota nepatenka
12701270
theme_xhred_disk_quota_error_message=įrenginyje nebėra vietos
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Iššifravimui naudokite pagrindinį administratoriaus raktą

lang/lv.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Iesniegt atbalsta biļeti ar pievienotu sist
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Piespiest atsvaidzināt sistēmas informāciju
12691269
theme_xhred_disk_quota_error_title=Ārpus kvotas
12701270
theme_xhred_disk_quota_error_message=Ierīcē vairs nav vietas
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Atšifrēšanai izmantojiet galveno administratora atslēgu

lang/ms.auto

+1
Original file line numberDiff line numberDiff line change
@@ -653,3 +653,4 @@ theme_xhred_tooltip_support_ticket=Serahkan tiket sokongan dengan maklumat siste
653653
theme_xhred_tooltip_side_slider_refresh_sysinfo=Paksa untuk memuat semula maklumat sistem
654654
theme_xhred_disk_quota_error_title=Habis kuota
655655
theme_xhred_disk_quota_error_message=Tiada lagi ruang di dalam peranti
656+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Gunakan kunci pentadbir induk untuk penyahsulitan

lang/mt.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1268,3 +1268,4 @@ theme_xhred_tooltip_support_ticket=Ibgħat biljett ta' appoġġ b'informazzjoni
12681268
theme_xhred_tooltip_side_slider_refresh_sysinfo=Imġiegħel li jġedded l-informazzjoni tas-sistema
12691269
theme_xhred_disk_quota_error_title=Barra mill-kwota
12701270
theme_xhred_disk_quota_error_message=Ma fadalx spazju fuq it-tagħmir
1271+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Uża ċavetta tal-amministratur prinċipali għad-deċifrar

lang/nl.auto

+1
Original file line numberDiff line numberDiff line change
@@ -1155,3 +1155,4 @@ theme_xhred_tooltip_support_ticket=Dien een ondersteuningsticket in met bijgevoe
11551155
theme_xhred_tooltip_side_slider_refresh_sysinfo=Forceer om systeeminformatie te vernieuwen
11561156
theme_xhred_disk_quota_error_title=Buiten quotum
11571157
theme_xhred_disk_quota_error_message=Geen ruimte meer op het apparaat
1158+
theme_xhred_filemanager_decrypt_option_use_master_admin_keys=Gebruik de hoofdbeheerderssleutel voor decodering

0 commit comments

Comments
 (0)