diff --git a/modules/Inventory/views/ProductsPopup.php b/modules/Inventory/views/ProductsPopup.php index f5a19cdada937995d22cba48d9517543514795b0..ac90ca95eebb56b2500bc655da30ccabc0a6097c 100644 --- a/modules/Inventory/views/ProductsPopup.php +++ b/modules/Inventory/views/ProductsPopup.php @@ -10,6 +10,15 @@ class Inventory_ProductsPopup_View extends Vtiger_Popup_View { + + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $request->set('custom_module', $this->getModule($request)); + return $permissions; + } + /** * Function returns module name for which Popup will be initialized * @param type $request diff --git a/modules/Inventory/views/SendEmail.php b/modules/Inventory/views/SendEmail.php index 2978dbf0c91736c1c44cdbff5579d5726658dd54..800afb8b7dcdf2730f6a70171eb7ceed8bcc0d2b 100644 --- a/modules/Inventory/views/SendEmail.php +++ b/modules/Inventory/views/SendEmail.php @@ -10,13 +10,6 @@ class Inventory_SendEmail_View extends Vtiger_ComposeEmail_View { - public function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - if(!Users_Privileges_Model::isPermitted($moduleName, 'index') || !Users_Privileges_Model::isPermitted('Emails', 'CreateView')) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } - } - /** * Function which will construct the compose email * This will handle the case of attaching the invoice pdf as attachment diff --git a/modules/Inventory/views/SubProductsPopup.php b/modules/Inventory/views/SubProductsPopup.php index ba030b7edb5f42a1ada869e199a565a68c12acc7..39eab43c1c15392e20a62a0ebd695cb3f6c1f2f7 100644 --- a/modules/Inventory/views/SubProductsPopup.php +++ b/modules/Inventory/views/SubProductsPopup.php @@ -10,6 +10,14 @@ class Inventory_SubProductsPopup_View extends Vtiger_Popup_View { + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $request->set('custom_module', $this->getModule($request)); + return $permissions; + } + /** * Function returns module name for which Popup will be initialized * @param type $request 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'); diff --git a/modules/Vtiger/views/ComposeEmail.php b/modules/Vtiger/views/ComposeEmail.php index 0ef99ddd944cf612918e9479f88fc2849965f8c4..f06c1375eed8cea67ad1072c4a7f737cbac5c453 100644 --- a/modules/Vtiger/views/ComposeEmail.php +++ b/modules/Vtiger/views/ComposeEmail.php @@ -20,17 +20,17 @@ class Vtiger_ComposeEmail_View extends Vtiger_Footer_View { $this->exposeMethod('emailReply'); $this->exposeMethod('emailReplyAll'); } - - public function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - $record = $request->get('record'); - $actionName = ($record) ? 'EditView' : 'CreateView'; - if(!Users_Privileges_Model::isPermitted($moduleName, $actionName, $record)) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $request->set('custom_module', 'Emails'); + return $permissions; } - function preProcess(Vtiger_Request $request, $display=true) { + function preProcess(Vtiger_Request $request, $display=true) { if($request->getMode() == 'previewPrint'){ return; } diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php index 3e9b338a1fd24b810c26d3588f49dfd9933bef1e..5c56bd5ed3076fcb21a6f62539ad1163c508e2c4 100644 --- a/modules/Vtiger/views/List.php +++ b/modules/Vtiger/views/List.php @@ -27,11 +27,6 @@ class Vtiger_List_View extends Vtiger_Index_View { return $permissions; } - - public function checkPermission(Vtiger_Request $request) { - return parent::checkPermission($request); - } - function preProcess(Vtiger_Request $request, $display=true) { parent::preProcess($request, false); diff --git a/modules/Vtiger/views/Popup.php b/modules/Vtiger/views/Popup.php index 2185cbc1876194206fe4e8953513e2b8da77c5ed..f5b5d3e8206499c0ab3a0c63bfb4a07ef75a95f8 100644 --- a/modules/Vtiger/views/Popup.php +++ b/modules/Vtiger/views/Popup.php @@ -12,14 +12,11 @@ class Vtiger_Popup_View extends Vtiger_Footer_View { protected $listViewEntries = false; protected $listViewHeaders = false; - function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - $moduleModel = Vtiger_Module_Model::getInstance($moduleName); - - $currentUserPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); - if(!$currentUserPrivilegesModel->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; } /**