diff --git a/modules/Emails/actions/BasicAjax.php b/modules/Emails/actions/BasicAjax.php
index 4bcc137dea49099933ddd62e01a2ee1a2acd8e9f..1a6e6f239913d8c3248f3c201d55ecf7da5f105b 100755
--- a/modules/Emails/actions/BasicAjax.php
+++ b/modules/Emails/actions/BasicAjax.php
@@ -10,8 +10,14 @@
 
 class Emails_BasicAjax_Action extends Vtiger_Action_Controller {
 
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		return $permissions;
+	}
+	
 	public function checkPermission(Vtiger_Request $request) {
-		return;
+		return parent::checkPermission($request);
 	}
 
 	public function process(Vtiger_Request $request) {
diff --git a/modules/Emails/actions/CheckServerInfo.php b/modules/Emails/actions/CheckServerInfo.php
index d34f6a1e343d8e14d3347a33000164d997d58f5a..f1ea551594b7cb9cf2cb2970b7620f4969526b0e 100644
--- a/modules/Emails/actions/CheckServerInfo.php
+++ b/modules/Emails/actions/CheckServerInfo.php
@@ -10,14 +10,14 @@
 
 class Emails_CheckServerInfo_Action extends Vtiger_Action_Controller {
 
-	function checkPermission(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-
-		$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
-		if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
-			throw new AppException(vtranslate($moduleName, $moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE'));
-		}
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		return $permissions;
+	}
+	
+	public function checkPermission(Vtiger_Request $request) {
+		return parent::checkPermission($request);
 	}
 
 	function process(Vtiger_Request $request) {
diff --git a/modules/Emails/actions/DownloadFile.php b/modules/Emails/actions/DownloadFile.php
index a441217afdac1b8c27dad0dd6117851263ce4067..01aabbbf81a6ee38da1ee259d31910414ef36b65 100644
--- a/modules/Emails/actions/DownloadFile.php
+++ b/modules/Emails/actions/DownloadFile.php
@@ -10,12 +10,14 @@
 
 class Emails_DownloadFile_Action extends Vtiger_Action_Controller {
 
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		return $permissions;
+	}
+	
 	public function checkPermission(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-
-		if(!Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $request->get('record'))) {
-			throw new AppException(vtranslate('LBL_PERMISSION_DENIED', $moduleName));
-		}
+		return parent::checkPermission($request);
 	}
 
 	public function process(Vtiger_Request $request) {
diff --git a/modules/Emails/actions/TrackAccess.php b/modules/Emails/actions/TrackAccess.php
index 18f981b7d9606c27746b3fe35091519fa583ac6f..3bc47b129bfe62bd9f0a5a0dd967d24f6ef5818d 100644
--- a/modules/Emails/actions/TrackAccess.php
+++ b/modules/Emails/actions/TrackAccess.php
@@ -27,6 +27,16 @@ vimport('includes.runtime.LanguageHandler');
 
 class Emails_TrackAccess_Action extends Vtiger_Action_Controller {
 
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		return $permissions;
+	}
+	
+	public function checkPermission(Vtiger_Request $request) {
+		return parent::checkPermission($request);
+	}
+	
 	public function process(Vtiger_Request $request) {
 		if (vglobal('application_unique_key') !== $request->get('applicationKey')) {
 			exit;
diff --git a/modules/Emails/views/List.php b/modules/Emails/views/List.php
index bf66ec284fb4ab6b975727fce334ec2a5203ff9f..72a2b0fef58a3dbefff522b119ce7c088d5c1b0e 100644
--- a/modules/Emails/views/List.php
+++ b/modules/Emails/views/List.php
@@ -10,6 +10,18 @@
 
 class Emails_List_View extends Vtiger_List_View {
 
+	
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView');
+		$request->set('custom_module', 'MailManager');
+		return $permissions;
+	}
+	
+	public function checkPermission(Vtiger_Request $request) {
+		return parent::checkPermission($request);
+	}
+	
 	public function preProcess(Vtiger_Request $request) {
 	}
 
diff --git a/modules/Emails/views/MassSaveAjax.php b/modules/Emails/views/MassSaveAjax.php
index c3180faaf89bb43f164acf9447994604271efc69..84320a36cc1d904aa70da4515b35203b0a1745a7 100644
--- a/modules/Emails/views/MassSaveAjax.php
+++ b/modules/Emails/views/MassSaveAjax.php
@@ -13,13 +13,15 @@ class Emails_MassSaveAjax_View extends Vtiger_Footer_View {
 		parent::__construct();
 		$this->exposeMethod('massSave');
 	}
-
+	
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		return $permissions;
+	}
+	
 	public function checkPermission(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-
-		if (!Users_Privileges_Model::isPermitted($moduleName, 'Save')) {
-			throw new AppException(vtranslate($moduleName, $moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE'));
-		}
+		return parent::checkPermission($request);
 	}
 
 	public function process(Vtiger_Request $request) {