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..da118619e2d6b93ddc58eb45849e4dc17676f4a8 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. < br ><br >Mit dem neuen Access-Schlüsselbestimmung, können Sie die alten Zugriffsschlüssel mit dem neuen in allen installierten Erweiterungen zu ersetzen haben. < br ><br >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..6796a4e9facce287425aa947ef821bdb32adcb50 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.<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?',
 );
\ 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..777b1112ba7bbd9465f98cbf5fa88492a808be69 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. < br ><br >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. < br ><br >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..d4990cdfc4792333deea9e0e956f67bd6bc6868c 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. < br ><br >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. < br ><br >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..51bb4575e60b5dc491bebaf987e0945b06c476e5 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. <br><br >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. <br><br >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..fba53440e115acdbebebcdb556e5eef612b56723 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. < br ><br >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. < br ><br >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..2b68b6cdcf9edc914725bb5cbcad75d94f57132d 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. < br ><br >Con la nuova disposizione chiave di accesso, è necessario sostituire la chiave di accesso vecchio con quello nuovo in tutte le estensioni installate. < br ><br >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..8f281410c340783e581df6da9180dabfefffde12 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. < br ><br >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..b99aa8aaf9ed96ee4fcb1f7ebb3728bcb28fa437 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. < br ><br >Z nowego przepisu klucz dostępu, trzeba zastąpić stary klucz dostępu z nową we wszystkich zainstalowanych rozszerzeń. < br ><br >chcesz kontynuować?',
 );
\ No newline at end of file
diff --git a/languages/pt_br/Users.php b/languages/pt_br/Users.php
index 41bd301d9734ccde05e8adc80236125e5c373b30..45f23c5bb317daccab12bd2de38b45bb277498e4 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. < br ><br >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. < br ><br >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..e7e12c0de80e9258c5a1ce9f3f0742d2c0579c85 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. < br ><br >cu acces noua prevedere cheie, trebuie să înlocuiți cheia de acces vechi cu unul nou, în toate extensiile instalate. < br ><br >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..a88a742f9328a803b78310cc121155f6245efadb 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' => 'Вы запросили для нового ключа доступа & л;. Бр & GT; & л; BR & GT; с новым ключом предоставления доступа, вы должны заменить старый ключ доступа с новым во всех установленных расширений и ЛТ;. Бр & GT; & л; BR & GT; Do вы хотите продолжить?',
 );
\ No newline at end of file
diff --git a/languages/tr_tr/Users.php b/languages/tr_tr/Users.php
index bb94df39c1eecbde3e88c0fa27eef7c586d8737e..9c6e3c3df7285f476cca29287259937aef017b12 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ı için istenen & lt olması,. Br ><br & gt;. Yeni Erişim tuşu hüküm ile, yeni yüklü tüm uzantıları biri & lt eski erişim anahtarı değiştirmek zorunda; br ><br >Do devam etmek istiyor musunuz?',
 );
\ 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..84cdd0d97e0637365fe04dd568f772b89a60ac2e 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..6dc5338aee1c549697803e364eca3c4aff220781 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' => 'لقد طلبت للحصول على مفتاح وصول جديد العلامة & lt؛ BR & GT؛ & اللفتنانت؛ ر & GT؛ مع وصول الحكم الرئيسي الجديد، لديك ليحل محل مفتاح الوصول القديم مع واحدة جديدة في جميع ملحقات تثبيت العلامة & lt؛ BR & GT؛ & اللفتنانت؛ ر & GT، هل هل ترغب في الاستمرار؟',
+);
\ No newline at end of file