diff --git a/includes/runtime/Controller.php b/includes/runtime/Controller.php
index c22079161a606d595d410f2ba6a118bc2f729265..3b32b85c6137e8eb81c74197662b1e52ca6fe638 100644
--- a/includes/runtime/Controller.php
+++ b/includes/runtime/Controller.php
@@ -286,6 +286,9 @@ abstract class Vtiger_View_Controller extends Vtiger_Action_Controller {
 	 */
 	function getJSLanguageStrings(Vtiger_Request $request) {
 		$moduleName = $request->getModule(false);
+		if ($moduleName === 'Settings:Users') {
+			$moduleName = 'Users';
+		} 
 		return Vtiger_Language_Handler::export($moduleName, 'jsLanguageStrings');
 	}
 }
\ No newline at end of file
diff --git a/languages/de_de/Users.php b/languages/de_de/Users.php
index 9cc2d6988c4a9d9b9d54c6486e0772b7cc506922..d750ef7c48197d5e247321e7e682d1fbfee412b6 100644
--- a/languages/de_de/Users.php
+++ b/languages/de_de/Users.php
@@ -175,6 +175,9 @@ $languageStrings = array(
 	'LBL_CHANGE_PASSWORD'	       => 'Change Password',
 	'LBL_NEW_PASSWORD'			   => 'New Password',
 	'LBL_CONFIRM_PASSWORD'		   => 'Confirm Password',
+	'LBL_CHANGE_ACCESS_KEY' => 'Ändern Access Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Zugriffsschlüssel aktualisiert erfolgreich',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Fehlgeschlagen Zugriffsschlüssel zu aktualisieren',
 	'LBL_TRANSFER_OWNERSHIP' => 'Transfer Owner',
 	'LBL_LOGIN_AS' => 'Login as ',
 	'LBL_USER_DELETED_SUCCESSFULLY' => 'Benutzer erfolgreich gelöscht',
@@ -204,8 +207,8 @@ $languageStrings = array(
 		'LBL_DATE_FORMAT'		=> 'Datumsformat',
 		'LBL_CHOOSE_DATE_FORMAT'=> 'Wählen Sie Datumsformat',
 		'LBL_PHONE'	=> 'Telefon',
-);
 
+);
 $jsLanguageStrings = array(
 	//Curency separator validation messages
 	'JS_DECIMAL_SEPARATOR_AND_GROUPING_SEPARATOR_CANT_BE_SAME' => 'Decimal separator and Grouping separator cant be same',
@@ -217,4 +220,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Neue Zugriffsschlüssel angefordert',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Sie haben für einen neuen Zugriffsschlüssel angefordert. Mit dem neuen Access-Schlüsselbestimmung, können Sie die alten Zugriffsschlüssel mit dem neuen in allen installierten Erweiterungen zu ersetzen haben. Do Sie wollen weitermachen?',
 );
\ No newline at end of file
diff --git a/languages/en_gb/Users.php b/languages/en_gb/Users.php
index edbf3790866e63ff97a8e3b76491d429bb50dd67..b13ad79db1c9ebcf99c4ca98dff5e8281e5746b9 100644
--- a/languages/en_gb/Users.php
+++ b/languages/en_gb/Users.php
@@ -173,6 +173,9 @@ $languageStrings = array(
 	'LBL_CHANGE_PASSWORD'	       => 'Change Password',
 	'LBL_NEW_PASSWORD'			   => 'New Password',
 	'LBL_CONFIRM_PASSWORD'		   => 'Confirm Password',
+	'LBL_CHANGE_ACCESS_KEY' => 'Change Access Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Access key updated successfully',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Failed to update access key',
 	'LBL_TRANSFER_OWNERSHIP' => 'Transfer Owner',
 	'LBL_LOGIN_AS' => 'Login as ',
 	'LBL_USER_DELETED_SUCCESSFULLY' => 'User deleted successfully',
@@ -202,8 +205,8 @@ $languageStrings = array(
 		'LBL_DATE_FORMAT'		=> 'Date Format',
 		'LBL_CHOOSE_DATE_FORMAT'=> 'Choose Date Format',
 		'LBL_PHONE'	=> 'Phone',
-);
 
+);
 $jsLanguageStrings = array(
 	//Curency separator validation messages
 	'JS_DECIMAL_SEPARATOR_AND_GROUPING_SEPARATOR_CANT_BE_SAME' => 'Decimal separator and Grouping separator can\'t be the same',
@@ -215,4 +218,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'New Access key requested',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'You have requested for a new Access key.With the new Access key provision, you have to replace the old access key with the new one in all installed extensions.Do you want to continue?',
 );
\ No newline at end of file
diff --git a/languages/en_us/Users.php b/languages/en_us/Users.php
index eab9b65bc53750f3dfb6e80cb5785ff79849e072..bd16d6a6dc8f1c586d2a1b2cdd21cffa4a6956b1 100644
--- a/languages/en_us/Users.php
+++ b/languages/en_us/Users.php
@@ -40,6 +40,9 @@ $languageStrings = array(
 	'LBL_CHOOSE_TIMEZONE'	=> 'Choose Timezone',
 	'LBL_COMPANY_SIZE'		=> 'Company Size',
 	'LBL_CONFIRM_PASSWORD' => 'Confirm Password',
+	'LBL_CHANGE_ACCESS_KEY' => 'Change Access Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Access key updated successfully',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Failed to update access key',
 	'LBL_CONNECT_WITH_US' => 'Connect with US',
 	'LBL_CURRENCY_CONFIGURATION' =>  'Currency and Number Field Configuration',
 	'LBL_DATE_FORMAT'		=> 'Date Format',
@@ -261,4 +264,6 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
 	'JS_REENTER_PASSWORDS'=>'Please re-enter passwords.  The \"new password\" and \"confirm password\" values do not match.',
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'New Access key requested', 
+ 	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'You have requested for a new Access key.<br><br>With the new Access key provision, you have to replace the old access key with the new one in all installed extensions.<br><br>Do you want to continue?',
 );
diff --git a/languages/es_es/Users.php b/languages/es_es/Users.php
index bf38d6052df895363e41a13e9cada31bad14485d..b6ee2c93e0e03877e01eacb2161d8d40777fcd00 100644
--- a/languages/es_es/Users.php
+++ b/languages/es_es/Users.php
@@ -85,6 +85,9 @@ $languageStrings = array(
 	'LBL_CHANGE_PASSWORD' => 'Cambiar Contraseña',
 	'LBL_NEW_PASSWORD' => 'Nueva Contraseña',
 	'LBL_CONFIRM_PASSWORD' => 'Confirmar Contraseña',
+	'LBL_CHANGE_ACCESS_KEY' => 'Cambiar la clave de acceso',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Tecla de acceso actualizado correctamente',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'No se pudo actualizar la clave de acceso',
 
 	'Kwajalein'                    => '(UTC-12:00) International Date Line West',
 	'Pacific/Midway'               => '(UTC-11:00) Coordinated Universal Time-11',
@@ -210,8 +213,8 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Formato de la fecha',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Seleccione Formato de fecha',
 	'LBL_PHONE'	=> 'Teléfono',
-);
 
+);
 $jsLanguageStrings = array(
 	'JS_ENTER_OLD_PASSWORD'=>'Introduce tu contraseña actual.',
 	'JS_ENTER_NEW_PASSWORD'=>'Introduce tu contraseña nueva.',
@@ -221,4 +224,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'No se ha podido cambiar la contraseña de ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' La nueva contraseña debe ser definida.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Contraseña actual incorrecta. Introduce de nuevo la información de las contraseñas.',
-);
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Nueva clave de acceso solicitado',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Ha solicitado una nueva clave de acceso. Con la nueva disposición clave de acceso, lo que tiene que sustituir la clave de acceso antiguo por uno nuevo en todas las extensiones instaladas. Do desea continuar?',
+);
\ No newline at end of file
diff --git a/languages/es_mx/Users.php b/languages/es_mx/Users.php
index 689b6e00b73d31273c577a60f1174d11e4df0467..e783143c85d8682c666be19b2cc833d61f7f3f50 100644
--- a/languages/es_mx/Users.php
+++ b/languages/es_mx/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Formato de la fecha',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Seleccione Formato de fecha',
 	'LBL_PHONE'	=> 'Teléfono',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Cambiar la clave de acceso',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Tecla de acceso actualizado correctamente',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'No se pudo actualizar la clave de acceso',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Nueva clave de acceso solicitado',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Ha solicitado una nueva clave de acceso. Con la nueva disposición clave de acceso, lo que tiene que sustituir la clave de acceso antiguo por uno nuevo en todas las extensiones instaladas. Do desea continuar?',
 );
\ No newline at end of file
diff --git a/languages/fr_fr/Users.php b/languages/fr_fr/Users.php
index 93ef8d8d97ddc987ff2326de9b48b60478ac50d0..7818e99ab66ce211774e67e010bd843be971cf09 100644
--- a/languages/fr_fr/Users.php
+++ b/languages/fr_fr/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Format de la date',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Choisissez Format de date',
 	'LBL_PHONE'	=> 'Téléphone',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => "Changer la clé d'accès",
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => "Clé d'accès mis à jour avec succès",
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => "Impossible de mettre à jour la clé d'accès",
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'clé New Access demandé',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => "Vous avez demandé une nouvelle clé d'accès. Avec la nouvelle disposition clé d'accès, vous devez remplacer la clé d'accès ancien et le nouveau dans toutes les extensions installées. Do vous voulez continuer?",
 );
\ No newline at end of file
diff --git a/languages/hu_hu/Users.php b/languages/hu_hu/Users.php
index aa234831313a1722ff60e388c319b5a2ad381703..eee8af852e398f59d930e414122ef70183821d00 100644
--- a/languages/hu_hu/Users.php
+++ b/languages/hu_hu/Users.php
@@ -40,6 +40,9 @@ $languageStrings = array(
 	'LBL_CHOOSE_TIMEZONE'	       => 'Válasszon időzónát'            ,
 	'LBL_COMPANY_SIZE'		       => 'Cég méret'                     ,
 	'LBL_CONFIRM_PASSWORD'         => 'Jelszó megerősítése'           ,
+	'LBL_CHANGE_ACCESS_KEY' => 'Hozzáférés módosítása Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Hozzáférési kulcs sikeresen frissítve',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Nem sikerült frissíteni a hozzáférési kulcs',
 	'LBL_CONNECT_WITH_US'          => 'Lépjen kapcsolatba velünk: '   ,
 	'LBL_CURRENCY_CONFIGURATION'   => 'Pénznem beállításai'           ,
 	'LBL_DATE_FORMAT'		       => 'Dátum formátum'                ,
@@ -215,8 +218,8 @@ $languageStrings = array(
 	'Pacific/Auckland'             => '(UTC+12:00) Auckland'        ,
 	'Asia/Magadan'                 => '(UTC+12:00) Magadan'         ,
 	'Pacific/Tongatapu'            => '(UTC+13:00) Nukualofa'       ,
-);
 
+);
 $jsLanguageStrings = array(
 	//Curency separator validation messages
 	'JS_DECIMAL_SEPARATOR_AND_GROUPING_SEPARATOR_CANT_BE_SAME' => 'A tizedesjel és az ezres elválasztó nem lehet ugyanaz.',
@@ -228,4 +231,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' sikertelen. Új jelszót kell megadnia.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Helytelen régi jelszó lett megadva. Adja meg újra a jelszó információkat.',
 	'JS_REENTER_PASSWORDS'=>'Kérjük, hogy adja meg újra a jelszót.  Az \"új jelszó\" és a \"jelszó megerősítése\" értékek nem egyeznek meg.',
-);
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Új hozzáférési kulcsot kért',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Azt kérte, egy új hozzáférési kulcsot. Az új hozzáférési kulcsot rendelkezés, ki kell cserélni a régi hozzáférési kulcsot az újat minden telepített bővítmények. Do szeretné folytatni?',
+);
\ No newline at end of file
diff --git a/languages/it_it/Users.php b/languages/it_it/Users.php
index 6e4994b7177fc0fbcd9bdd9ae679ba1e67a97c81..8d1ce7d6acb55aa0ee9b263bce5b0334059d43b3 100644
--- a/languages/it_it/Users.php
+++ b/languages/it_it/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Data Format',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Scegli la Data Format',
 	'LBL_PHONE'	=> 'Telefono',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Cambio Accessibilità',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Chiave di accesso aggiornato con successo',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Impossibile aggiornare chiave di accesso',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'nuova chiave di accesso richiesto',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Hai richiesto per una nuova chiave di accesso. Con la nuova disposizione chiave di accesso, è necessario sostituire la chiave di accesso vecchio con quello nuovo in tutte le estensioni installate. Do si desidera continuare?',
 );
\ No newline at end of file
diff --git a/languages/nl_nl/Users.php b/languages/nl_nl/Users.php
index fd22a75f83b1a7382de81c7661c2d6f7a35aece3..4d920aa6cbe58ccfb3195988c3fc37b5ef84e14a 100644
--- a/languages/nl_nl/Users.php
+++ b/languages/nl_nl/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Date Format',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Kies datumnotatie',
 	'LBL_PHONE'	=> 'Telefoon',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Toegang Change Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Access key bijgewerkt',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Mislukt toegangssleutel actualiseren',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'New Access key gevraagd',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'U heeft gevraagd voor een nieuwe Access key. Met de nieuwe Access belangrijkste bepaling, moet u de oude toegang toets met het nieuwe in alle geïnstalleerde extensies & lt vervangen;. Br ><br >Do u wilt doorgaan?',
 );
\ No newline at end of file
diff --git a/languages/pl_pl/Users.php b/languages/pl_pl/Users.php
index 7c3abe0877a3833810bdb866ea3120e470a4be2f..fe57cc6b673beffd310ed2cef9f2bfa6dda1546e 100644
--- a/languages/pl_pl/Users.php
+++ b/languages/pl_pl/Users.php
@@ -188,6 +188,9 @@ $languageStrings = array(
 	'LBL_CHANGE_PASSWORD' => 'Zmień hasło',
 	'LBL_NEW_PASSWORD' => 'Nowe hasło',
 	'LBL_CONFIRM_PASSWORD' => 'Potwierdź hasło',
+	'LBL_CHANGE_ACCESS_KEY' => 'Zmień Access Key',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Klawisz pomyślnie zaktualizowane',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Nie udało się zaktualizować klucz dostępu',
 	
 	//Login strings
 	'LBL_TO_CRM' => 'Zaloguj do Vtiger CRM',
@@ -227,8 +230,8 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Format daty',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Wybierz format daty',
 	'LBL_PHONE'	=> 'Telefon',
-);
 
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -241,4 +244,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'Nie udało się zmienic hasła dla ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' niepowodzenie. Nowe hasło musi zostać ustawione.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Podano niepoprawne stare hasło. Wpisz ponownie.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Nowy klucz dostępu wymagane',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Zażądano nowego klucza dostępowego. Z nowego przepisu klucz dostępu, trzeba zastąpić stary klucz dostępu z nową we wszystkich zainstalowanych rozszerzeń. chcesz kontynuować?',
 );
\ No newline at end of file
diff --git a/languages/pt_br/Users.php b/languages/pt_br/Users.php
index 41bd301d9734ccde05e8adc80236125e5c373b30..10edcae7631cc1b75002b054524402a0b582ffc6 100644
--- a/languages/pt_br/Users.php
+++ b/languages/pt_br/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Formato de data',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Escolha Formato de data',
 	'LBL_PHONE'	=> 'Telefone',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Alterar Chave de Acesso',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'chave de acesso atualizado com sucesso',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Falha ao atualizar a chave de acesso',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'chave New Access solicitado',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Você pediu para uma nova chave de acesso. Com a nova disposição fundamental Access, você tem que substituir a chave de acesso antigo com o novo, em todas as extensões instaladas. Do você quer continuar?',
 );
\ No newline at end of file
diff --git a/languages/ro_ro/Users.php b/languages/ro_ro/Users.php
index c61524dd3e5c7bd481d433fb77f261b528ff74cf..63d189cd03706734bdfd8127ebe202c90c98fcef 100644
--- a/languages/ro_ro/Users.php
+++ b/languages/ro_ro/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Format dată',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Alegeți Format dată',
 	'LBL_PHONE'	=> 'Telefon',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Schimbare cheie de acces',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Cheia de acces a fost actualizat',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Actualizarea nu a reușit cheie de acces',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Tasta de acces nou solicitat',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Ați solicitat o nouă cheie de acces. cu acces noua prevedere cheie, trebuie să înlocuiți cheia de acces vechi cu unul nou, în toate extensiile instalate. Do doriți să continuați?',
 );
\ No newline at end of file
diff --git a/languages/ru_ru/Users.php b/languages/ru_ru/Users.php
index 7cde4578fd1a53f3ae9e04e56a128c6c58b857e3..7562f977f1d24a6a824dc9398da4e7785739d73c 100644
--- a/languages/ru_ru/Users.php
+++ b/languages/ru_ru/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 	'LBL_DATE_FORMAT'		=> 'Формат даты',
 	'LBL_CHOOSE_DATE_FORMAT'=> 'Выберите формат даты',
 	'LBL_PHONE'	=> 'Телефон',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Изменение ключа доступа',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Ключ доступа успешно обновлен',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'Не удалось обновить ключ доступа',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Ключ доступа Новый просил',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Вы запросили для нового доступа key.With нового ключевого положения доступа, вы должны заменить старый ключ доступа с новым во всех установленных extensions.Do вы хотите продолжить?',
 );
\ No newline at end of file
diff --git a/languages/tr_tr/Users.php b/languages/tr_tr/Users.php
index bb94df39c1eecbde3e88c0fa27eef7c586d8737e..fcf7f880bab1dd0814c28e399376eaacc4c83b08 100644
--- a/languages/tr_tr/Users.php
+++ b/languages/tr_tr/Users.php
@@ -196,8 +196,11 @@ $languageStrings = array(
 		'LBL_DATE_FORMAT'		=> 'Tarih Biçimi',
 		'LBL_CHOOSE_DATE_FORMAT'=> 'Tarih Biçimi seçin',
 		'LBL_PHONE'	=> 'Telefon',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'Değişim Erişim Anahtarı',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'Erişim tuşu başarıyla güncellendi',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'erişim anahtarı güncellenemedi',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -210,4 +213,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
+
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'Yeni Erişim anahtarı talep',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'Yeni Erişim anahtarı hüküm key.With yeni erişim için talep ettiğiniz, size devam etmek istiyor yüklü tüm extensions.Do içinde yenisi ile eski erişim anahtarı değiştirmek zorunda?',
 );
\ No newline at end of file
diff --git a/layouts/vlayout/modules/Users/PreferenceDetailViewHeader.tpl b/layouts/vlayout/modules/Users/PreferenceDetailViewHeader.tpl
index 95fea5ce9f76bf2154b29e14b60ff0c8686cbe5f..d6fd6e292a9bf13f53ec223747ca40f0bd406b46 100644
--- a/layouts/vlayout/modules/Users/PreferenceDetailViewHeader.tpl
+++ b/layouts/vlayout/modules/Users/PreferenceDetailViewHeader.tpl
@@ -49,6 +49,20 @@
                                     </button>
                                 </div>
                             {/foreach}
+							{if $DETAILVIEW_LINKS['DETAILVIEW']|@count gt 0}
+								<span class="btn-group">
+									<button class="btn dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">
+										<strong>{vtranslate('LBL_MORE', $MODULE_NAME)}</strong>&nbsp;&nbsp;<i class="caret"></i>
+									</button>
+									<ul class="dropdown-menu pull-right">
+										{foreach item=DETAIL_VIEW_LINK from=$DETAILVIEW_LINKS['DETAILVIEW']}
+											<li id="{$MODULE_NAME}_detailView_moreAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($DETAIL_VIEW_LINK->getLabel())}">
+												<a href={$DETAIL_VIEW_LINK->getUrl()} >{vtranslate($DETAIL_VIEW_LINK->getLabel(), $MODULE_NAME)}</a>
+											</li>
+										{/foreach}
+									</ul>
+								</span>
+							{/if}
                         </div>
                     </div>
                 </div>
diff --git a/layouts/vlayout/modules/Users/resources/Detail.js b/layouts/vlayout/modules/Users/resources/Detail.js
index 0fa19b6c4cc857f3522dbdefc770c47d0cf0478b..2493ef1b537c78db3271da26c0f66b4159ecb980 100644
--- a/layouts/vlayout/modules/Users/resources/Detail.js
+++ b/layouts/vlayout/modules/Users/resources/Detail.js
@@ -171,7 +171,31 @@ Vtiger_Detail_Js("Users_Detail_Js",{
 				}
 			}
 		);
-	}
+	},
+
+	triggerChangeAccessKey: function (url) {
+		var title = app.vtranslate('JS_NEW_ACCESS_KEY_REQUESTED');
+		var message = app.vtranslate('JS_CHANGE_ACCESS_KEY_CONFIRMATION');
+		Vtiger_Helper_Js.showConfirmationBox({'title': title,'message': message}).then(function (data) {
+			AppConnector.request(url).then(function(data) {
+				var params = {};
+				if(data['success']) {
+					data = data.result;
+					params['type'] = 'success';
+					message = app.vtranslate(data.message);
+					var accessKeyEle = jQuery('#Users_detailView_fieldValue_accesskey');
+					if (accessKeyEle.length) {
+						accessKeyEle.find('.value').html(data.accessKey);
+					}
+				} else {
+					message = app.vtranslate(data['error']['message']);
+				}
+				params['text'] = message;
+				Vtiger_Helper_Js.showPnotify(params);
+			});
+		});
+	},
+
 },{
 	
 	usersEditInstance : false,
diff --git a/modules/Users/actions/SaveAjax.php b/modules/Users/actions/SaveAjax.php
index d4568076c46a7969138e3e7a56f4e2cd53e758c1..f66745de573251885465a82705d9e1ef35dd4681 100644
--- a/modules/Users/actions/SaveAjax.php
+++ b/modules/Users/actions/SaveAjax.php
@@ -15,6 +15,7 @@ class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 		parent::__construct();
 		$this->exposeMethod('userExists');
 		$this->exposeMethod('savePassword');
+		$this->exposeMethod('changeAccessKey');
                 $this->exposeMethod('restoreUser');
 	}
 
@@ -144,4 +145,33 @@ class Users_SaveAjax_Action extends Vtiger_SaveAjax_Action {
 		$response->setResult(array('message'=>vtranslate('LBL_USER_RESTORED_SUCCESSFULLY', $moduleName), 'listViewUrl' => $listViewUrl));
 		$response->emit();
         }
-        }
+	
+	public function changeAccessKey(Vtiger_Request $request) {
+		$recordId = $request->get('record');
+		$moduleName = $request->getModule();
+
+		$response = new Vtiger_Response();
+		try {
+			$recordModel = Users_Record_Model::getInstanceById($recordId, $moduleName);
+			$oldAccessKey = $recordModel->get('accesskey');
+
+			$entity = $recordModel->getEntity();
+			$entity->createAccessKey();
+
+			require_once('modules/Users/CreateUserPrivilegeFile.php');
+			createUserPrivilegesfile($recordId);
+
+			$recordModel = Users_Record_Model::getInstanceFromPreferenceFile($recordId);
+			$newAccessKey = $recordModel->get('accesskey');
+
+			if ($newAccessKey != $oldAccessKey) {
+				$response->setResult(array('message' => vtranslate('LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY', $moduleName), 'accessKey' => $newAccessKey));
+			} else {
+				$response->setError(vtranslate('LBL_FAILED_TO_UPDATE_ACCESS_KEY', $moduleName));
+			}
+		} catch (Exception $ex) {
+			$response->setError($ex->getMessage());
+		}
+		$response->emit();
+	}
+}
diff --git a/modules/Users/models/DetailView.php b/modules/Users/models/DetailView.php
index 2e787426a7e990d0387dfa613a726d50066d7f08..368b801485ee5910a3e731349fc2ccd65eaefc75 100644
--- a/modules/Users/models/DetailView.php
+++ b/modules/Users/models/DetailView.php
@@ -22,6 +22,7 @@ class Users_DetailView_Model extends Vtiger_DetailView_Model {
 		$recordModel = $this->getRecord();
 		$recordId = $recordModel->getId();
 
+		$linkModelList = array();
 		if (($currentUserModel->isAdminUser() == true || $currentUserModel->get('id') == $recordId) && $recordModel->get('status') == 'Active' ) {
 			$recordModel = $this->getRecord();
 
@@ -32,12 +33,6 @@ class Users_DetailView_Model extends Vtiger_DetailView_Model {
 				'linkurl' => $recordModel->getEditViewUrl(),
 				'linkicon' => ''
 				),
-				array(
-					'linktype' => 'DETAILVIEWBASIC',
-					'linklabel' => 'LBL_CHANGE_PASSWORD',
-					'linkurl' => "javascript:Users_Detail_Js.triggerChangePassword('index.php?module=Users&view=EditAjax&mode=changePassword&recordId=$recordId','Users')",
-					'linkicon' => ''
-				)
 			);
 
 			foreach ($detailViewLinks as $detailViewLink) {
@@ -45,12 +40,6 @@ class Users_DetailView_Model extends Vtiger_DetailView_Model {
 			}
 			
 			$detailViewPreferenceLinks = array(
-				array(
-					'linktype' => 'DETAILVIEWPREFERENCE',
-					'linklabel' => 'LBL_CHANGE_PASSWORD',
-					'linkurl' => "javascript:Users_Detail_Js.triggerChangePassword('index.php?module=Users&view=EditAjax&mode=changePassword&recordId=$recordId','Users')",
-					'linkicon' => ''
-				),
 				array(
 					'linktype' => 'DETAILVIEWPREFERENCE',
 					'linklabel' => 'LBL_EDIT',
@@ -72,12 +61,24 @@ class Users_DetailView_Model extends Vtiger_DetailView_Model {
 						'linkicon' => ''
 					)
 				);
+			}
+			$detailViewActionLinks[] = array(
+						'linktype' => 'DETAILVIEW',
+						'linklabel' => 'LBL_CHANGE_PASSWORD',
+						'linkurl' => "javascript:Users_Detail_Js.triggerChangePassword('index.php?module=Users&view=EditAjax&mode=changePassword&recordId=$recordId','Users')",
+						'linkicon' => ''
+			);
+			$detailViewActionLinks[] = array(
+						'linktype'	=> 'DETAILVIEW',
+						'linklabel' => 'LBL_CHANGE_ACCESS_KEY',
+						'linkurl'	=> "javascript:Users_Detail_Js.triggerChangeAccessKey('index.php?module=Users&action=SaveAjax&mode=changeAccessKey&record=$recordId')",
+						'linkicon'	=> ''
+			);
 
-				foreach ($detailViewActionLinks as $detailViewLink) {
-					$linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($detailViewLink);
-				}
+			foreach ($detailViewActionLinks as $detailViewLink) {
+				$linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($detailViewLink);
 			}
-			return $linkModelList;
 		}
+		return $linkModelList;
 	}
 }
\ No newline at end of file
diff --git a/modules/Users/models/Record.php b/modules/Users/models/Record.php
index e45c90ec652ba2537e5d404cb12c438d7cacd3d8..c2fcd0942a87d27bea2a0891abfd70a7fda0baa5 100644
--- a/modules/Users/models/Record.php
+++ b/modules/Users/models/Record.php
@@ -165,6 +165,15 @@ class Users_Record_Model extends Vtiger_Record_Model {
 		return new self();
 	}
 
+	/**
+	 * Function to return user object from preference file.
+	 */
+	public static function getInstanceFromPreferenceFile($userId) {
+		$focusObj = new Users();
+		$focusObj->retrieveCurrentUserInfoFromFile($userId);
+		return self::getInstanceFromUserObject($focusObj);
+	}
+
 	/**
 	 * Static Function to get the instance of the User Record model from the given Users object
 	 * @return Users_Record_Model instance
diff --git a/packages/vtiger/optional/Arabic_ar_ae.zip b/packages/vtiger/optional/Arabic_ar_ae.zip
index feea19561325060f26489f3712474333e0bfd9f2..4b22c09d59db95fad56f21392f7292f3d7724690 100644
Binary files a/packages/vtiger/optional/Arabic_ar_ae.zip and b/packages/vtiger/optional/Arabic_ar_ae.zip differ
diff --git a/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php b/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
index 7b6cd8739cb101e2969c55086f16fac6dbae13bd..1321f9d8fcde9b32f3b4073bfbaf73f5b83d342f 100644
--- a/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
+++ b/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
@@ -186,8 +186,11 @@ $languageStrings = array(
     'LBL_DELETE_USER_PERMANENTLY' => 'حذف العضو بشكل دائم',
     'LBL_RESTORE' => 'استعادة',
     'LBL_USER_RESTORED_SUCCESSFULLY' => 'المستخدم استعادة بنجاح',
-);
 
+	'LBL_CHANGE_ACCESS_KEY' => 'تغيير مفتاح الوصول',
+	'LBL_ACCESS_KEY_UPDATED_SUCCESSFULLY' => 'مفتاح الوصول بنجاح تحديث',
+	'LBL_FAILED_TO_UPDATE_ACCESS_KEY' => 'فشل تحديث مفتاح الوصول',
+);
 $jsLanguageStrings = array(
 		
 	//Curency separator validation messages
@@ -200,5 +203,7 @@ $jsLanguageStrings = array(
 	'JS_PASSWORD_CHANGE_FAILED_1'=>'User password change failed for ',
 	'JS_PASSWORD_CHANGE_FAILED_2'=>' failed.  The new password must be set.',
 	'JS_PASSWORD_INCORRECT_OLD'=>'Incorrect old password specified. Re-enter password information.',
-);
 
+	'JS_NEW_ACCESS_KEY_REQUESTED' => 'طلب مفتاح وصول جديدة',
+	'JS_CHANGE_ACCESS_KEY_CONFIRMATION' => 'لقد طلبت للحصول على مفتاح وصول جديد العلامة   & اللفتنانت؛ ر & GT؛ مع وصول الحكم الرئيسي الجديد، لديك ليحل محل مفتاح الوصول القديم مع واحدة جديدة في جميع ملحقات تثبيت العلامة   & اللفتنانت؛ ر & GT، هل هل ترغب في الاستمرار؟',
+);
\ No newline at end of file