diff --git a/modules/Vtiger/views/BasicAjax.php b/modules/Vtiger/views/BasicAjax.php
index 95e8a1ff718623a9440c3adb51ca9332b80ac59c..daaf1bafe84ee253fbbbb46b305c08da43be4577 100644
--- a/modules/Vtiger/views/BasicAjax.php
+++ b/modules/Vtiger/views/BasicAjax.php
@@ -16,7 +16,12 @@ class Vtiger_BasicAjax_View extends Vtiger_Basic_View {
 		$this->exposeMethod('showSearchResults');
 	}
 
-	function checkPermission() { }
+	public function requiresPermission(Vtiger_Request $request){
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		
+		return $permissions;
+	}
 
 	function preProcess(Vtiger_Request $request) {
 		return true;
diff --git a/modules/Vtiger/views/DashBoard.php b/modules/Vtiger/views/DashBoard.php
index 2f9b634fce2173cbf09d5118990e8b67c9262f77..f5849759906b7a29c2b31aa55ad46878dddd9669 100644
--- a/modules/Vtiger/views/DashBoard.php
+++ b/modules/Vtiger/views/DashBoard.php
@@ -14,8 +14,12 @@ class Vtiger_Dashboard_View extends Vtiger_Index_View {
 
 	public function requiresPermission(\Vtiger_Request $request) {
 		$permissions = parent::requiresPermission($request);
-		$permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView');
-		$request->set('custom_module', 'Dashboard');
+		if($request->get('module') != 'Dashboard'){
+			$request->set('custom_module', 'Dashboard');
+			$permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView');
+		}else{
+			$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		}
 		return $permissions;
 	}
 	
@@ -30,17 +34,17 @@ class Vtiger_Dashboard_View extends Vtiger_Index_View {
 		$userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
 		$permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId());
 		if($permission) {
-			// TODO : Need to optimize the widget which are retrieving twice
-			$dashboardTabs = $dashBoardModel->getActiveTabs();
-			if ($request->get("tabid")) {
-				$tabid = $request->get("tabid");
-			} else {
-				// If no tab, then select first tab of the user
-				$tabid = $dashboardTabs[0]["id"];
-			}
-			$dashBoardModel->set("tabid", $tabid);
-			$widgets = $dashBoardModel->getSelectableDashboard();
-			self::$selectable_dashboards = $widgets;
+		// TODO : Need to optimize the widget which are retrieving twice
+		$dashboardTabs = $dashBoardModel->getActiveTabs();
+		if ($request->get("tabid")) {
+			$tabid = $request->get("tabid");
+		} else {
+			// If no tab, then select first tab of the user
+			$tabid = $dashboardTabs[0]["id"];
+		}
+		$dashBoardModel->set("tabid", $tabid);
+		$widgets = $dashBoardModel->getSelectableDashboard();
+		self::$selectable_dashboards = $widgets;
 		} else {
 			$widgets = array();
 		}
diff --git a/modules/Vtiger/views/EmailsRelatedModulePopup.php b/modules/Vtiger/views/EmailsRelatedModulePopup.php
index 0636f752f5ada4c3e2acb2a0a742136fae3788c8..6665ae41da7041d768ee2003ca0bd81a0b8496c1 100644
--- a/modules/Vtiger/views/EmailsRelatedModulePopup.php
+++ b/modules/Vtiger/views/EmailsRelatedModulePopup.php
@@ -10,6 +10,14 @@
 
 class Vtiger_EmailsRelatedModulePopup_View extends Vtiger_Popup_View {
 
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		$permissions[] = array('module_parameter' => 'src_module', 'action' => 'DetailView');
+		
+		return $permissions;
+	}
+	
 	function checkPermission(Vtiger_Request $request) {
 		$moduleName = $request->getModule();
 		if($moduleName == 'Users') {
diff --git a/modules/Vtiger/views/Export.php b/modules/Vtiger/views/Export.php
index ee38c3f77ec96a64d27e4a6e1f66c3c974fd668a..78d078f6fcae741178ee4eda1c0e5c82a9a21fe3 100644
--- a/modules/Vtiger/views/Export.php
+++ b/modules/Vtiger/views/Export.php
@@ -10,14 +10,11 @@
 
 class Vtiger_Export_View extends Vtiger_Index_View {
 
-	function checkPermission(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-
-		$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
-		if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Export')) {
-			throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
-		}
+	public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'Export');
+		
+		return $permissions;
 	}
 
 	function process(Vtiger_Request $request) {
diff --git a/modules/Vtiger/views/Extension.php b/modules/Vtiger/views/Extension.php
index 97156b65a7a1dbea983dde67ea74d1e87fd96a5a..2fb2555fdda83adf5923c7b91dae7406406be970 100644
--- a/modules/Vtiger/views/Extension.php
+++ b/modules/Vtiger/views/Extension.php
@@ -10,20 +10,21 @@
 
 class Vtiger_Extension_View extends Vtiger_List_View {
     
-    public function checkPermission(Vtiger_Request $request) {
+    public function requiresPermission(\Vtiger_Request $request) {
+		$permissions = parent::requiresPermission($request);
+		$permissions[] = array('module_parameter' => 'extensionModule', 'action' => 'DetailView');
+		
+		return $permissions;
+	}
+	
+	public function checkPermission(Vtiger_Request $request) {
 		$moduleName = $request->get('extensionModule');
 
+		parent::checkPermission($request);
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 		if (empty($moduleModel)) {
 			throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND'));
 		}
-
-		$userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
-		$permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId());
-		if (!$permission) {
-			throw new AppException(vtranslate($moduleName, $moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE'));
-		}
-
 		return true;
 	}
 
diff --git a/modules/Vtiger/views/Import.php b/modules/Vtiger/views/Import.php
index 75ec101c4d300600dfdc7c2ff22fe98591b365c8..076a7109ba869f7857156b82a789df40705b8908 100644
--- a/modules/Vtiger/views/Import.php
+++ b/modules/Vtiger/views/Import.php
@@ -26,14 +26,11 @@ class Vtiger_Import_View extends Vtiger_Index_View {
 		$this->exposeMethod('updateSavedMapping');
 	}
 
-	function checkPermission(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-
-		$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
-		if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Import')) {
-			throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
-		}
+	public function requiresPermission(Vtiger_Request $request){
+		$permissions = parent::requiresPermission($request);
+		
+		$permissions[] = array('module_parameter' => 'module', 'action' => 'Import');
+		return $permissions;
 	}
 
 	function process(Vtiger_Request $request) {
diff --git a/modules/Vtiger/views/MiniListWizard.php b/modules/Vtiger/views/MiniListWizard.php
index 1d73b07e50cd32ec4df3a5470b7175efab34de9d..b27dc270fc81e69e56094fa697d40525ffaa7da5 100644
--- a/modules/Vtiger/views/MiniListWizard.php
+++ b/modules/Vtiger/views/MiniListWizard.php
@@ -10,6 +10,18 @@
 
 class Vtiger_MiniListWizard_View extends Vtiger_Index_View {
 
+	public function requiresPermission(Vtiger_Request $request){
+		$permissions = parent::requiresPermission($request);
+		if($request->get('module') != 'Dashboard'){
+			$request->set('custom_module', 'Dashboard');
+			$permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView');
+		}else{
+			$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+		}
+		
+		return $permissions;
+	}
+	
 	function process (Vtiger_Request $request) {
 		$currentUser = Users_Record_Model::getCurrentUserModel();
 		$viewer = $this->getViewer($request);