From 7ca00d56bef3fe82db36605c4ae9ec01bf14266f Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Tue, 9 Nov 2010 09:32:52 +0000 Subject: [PATCH] - added possibility to unlock customers who got locked because of too many login-fails, fixes #473 --- admin_customers.php | 27 +++++++++++++++++++ lng/english.lng.php | 4 +++ lng/german.lng.php | 4 +++ .../admin/customers/customers_customer.tpl | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/admin_customers.php b/admin_customers.php index 702ff667..47d422c5 100644 --- a/admin_customers.php +++ b/admin_customers.php @@ -107,10 +107,12 @@ if($page == 'customers' $last_login = ((int)$row['lastlogin_succ'] == 0) ? $lng['panel']['neverloggedin'] : date('d.m.Y', $row['lastlogin_succ']); $column_style = ''; + $unlock_link = ''; if($row['loginfail_count'] >= $settings['login']['maxloginattempts'] && $row['lastlogin_fail'] > (time() - $settings['login']['deactivatetime']) ) { $column_style = ' style="background-color: #f99122;"'; + $unlock_link = ''.$lng['panel']['unlock'].'
'; } $row = str_replace_array('-1', 'UL', $row, 'diskspace traffic mysqls emails email_accounts email_forwarders ftps tickets subdomains email_autoresponder'); @@ -144,6 +146,31 @@ if($page == 'customers' redirectTo('index.php', Array('action' => 'login')); } } + elseif($action == 'unlock' + && $id != 0) + { + $result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$id . "' " . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . $db->escape($userinfo['adminid']) . "' ")); + + if($result['loginname'] != '') + { + if(isset($_POST['send']) + && $_POST['send'] == 'send') + { + $result = $db->query("UPDATE + `" . TABLE_PANEL_CUSTOMERS . "` + SET + `loginfail_count` = '0' + WHERE + `customerid`= '" . (int)$id . "'" + ); + redirectTo($filename, Array('page' => $page, 's' => $s)); + } + else + { + ask_yesno('customer_reallyunlock', $filename, array('id' => $id, 'page' => $page, 'action' => $action), $result['loginname']); + } + } + } elseif($action == 'delete' && $id != 0) { diff --git a/lng/english.lng.php b/lng/english.lng.php index 14702dcf..7c1eae9f 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1511,4 +1511,8 @@ $lng['admin']['ipsandports']['docroot']['description'] = 'You can define a custo // ADDED IN FROXLOR 0.9.14-svn6 $lng['serversettings']['login_domain_login'] = 'Allow login with domains'; +// ADDED IN FROXLOR 0.9.14 +$lng['panel']['unlock'] = 'unlock'; +$lng['question']['customer_reallyunlock'] = 'Do you really want to unlock customer %s?'; + ?> diff --git a/lng/german.lng.php b/lng/german.lng.php index fe50fa53..2e24d4d4 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1494,4 +1494,8 @@ $lng['admin']['ipsandports']['docroot']['description'] = 'Hier kann ein benutzer // ADDED IN FROXLOR 0.9.14-svn6 $lng['serversettings']['login_domain_login'] = 'Erlaube Anmeldung mit Domains'; +// ADDED IN FROXLOR 0.9.14 +$lng['panel']['unlock'] = 'entsperren'; +$lng['question']['customer_reallyunlock'] = 'Wollen Sie den Kunden %s wirklich entsperren?'; + ?> diff --git a/templates/admin/customers/customers_customer.tpl b/templates/admin/customers/customers_customer.tpl index 421cc374..674ab204 100644 --- a/templates/admin/customers/customers_customer.tpl +++ b/templates/admin/customers/customers_customer.tpl @@ -27,5 +27,5 @@ {$row['emails_used']}/{$row['emails']}
{$row['subdomains_used']}/{$row['subdomains']} {$row['email_accounts_used']}/{$row['email_accounts']}
{$row['email_forwarders_used']}/{$row['email_forwarders']} {$lng['panel']['yes']}{$lng['panel']['no']}
{$last_login} - {$lng['panel']['edit']}
{$lng['panel']['delete']} + {$unlock_link}{$lng['panel']['edit']}
{$lng['panel']['delete']}