diff --git a/modules/PurchaseOrder/actions/CompanyDetails.php b/modules/PurchaseOrder/actions/CompanyDetails.php
index 942b374c355133b15ffa663d8daadd8923f6508b..fdac26100b7eec861f80dd1f42c061a753281e65 100644
--- a/modules/PurchaseOrder/actions/CompanyDetails.php
+++ b/modules/PurchaseOrder/actions/CompanyDetails.php
@@ -10,22 +10,30 @@
 
 class PurchaseOrder_CompanyDetails_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'));
-		}
-	}
-
-     function __construct() {
+	function __construct() {
         parent::__construct();
         $this->exposeMethod('getCompanyDetails');
         $this->exposeMethod('getAddressDetails');
     }
 
+	public function requiresPermission(Vtiger_Request $request){
+		$permissions = parent::requiresPermission($request);
+		$mode = $request->getMode();
+		if(!empty($mode)) {
+			switch ($mode) {
+				case 'getCompanyDetails':
+					$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
+					break;
+				case 'getAddressDetails':
+					$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'recordId');
+					break;
+				default:
+					break;
+			}
+		}
+		return $permissions;
+	}
+     
 	function process(Vtiger_Request $request) {
 		$mode = $request->getMode();
 		if(!empty($mode)) {
diff --git a/modules/PurchaseOrder/actions/GetTaxes.php b/modules/PurchaseOrder/actions/GetTaxes.php
index 7e1598d7018aa750767922d3823ac44159420476..19f8d026a8bfe0d71a7aa36b54c064b8abf7f6f2 100644
--- a/modules/PurchaseOrder/actions/GetTaxes.php
+++ b/modules/PurchaseOrder/actions/GetTaxes.php
@@ -10,17 +10,6 @@
 
 class PurchaseOrder_GetTaxes_Action extends Inventory_GetTaxes_Action {
 
-	function checkPermission(Vtiger_Request $request) {
-		$record = $request->get('record');
-
-		$moduleName = getSalesEntityType($record);
-		$recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $record);
-
-		if(!$recordPermission) {
-			throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
-		}
-	}
-
 	function process(Vtiger_Request $request) {
 		$decimalPlace = getCurrencyDecimalPlaces();
 		$currencyId = $request->get('currency_id');