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 @@