Exemple #1
0
 function __callStatic($name, $arguments)
 {
     switch ($name) {
         case 'OnBeforeIBlockElementAdd':
             $action = 'Add';
             break;
         case 'OnBeforeIBlockElementDelete':
             $action = 'Delete';
             break;
         case 'OnBeforeIBlockElementUpdate':
             $action = 'Edit';
             break;
         default:
             return;
             break;
     }
     $arFields = $arguments[0];
     if (!is_array($arFields)) {
         CModule::IncludeModule('iblock');
         $res = CIBlockElement::GetByID($arFields);
         if ($ar_res = $res->GetNext()) {
             $arFields = $ar_res;
         }
     }
     switch ($arFields["IBLOCK_ID"]) {
         case PROJECTS_IBLOCK_ID:
             $enitity = 'Project';
             break;
         case TASKS_IBLOCK_ID:
             $enitity = 'Task';
             break;
         default:
             return;
             break;
     }
     $method = 'hasRigthsTo' . $action . $enitity;
     global $USER, $APPLICATION;
     if (method_exists($USER, $method)) {
         if (!$USER->{$method}($arFields)) {
             $APPLICATION->throwException("У вас недостаточно прав на эту операцию");
             return false;
         } elseif ($action == 'Delete') {
             $log = new CrmLog();
             $log->delete($arFields['ID']);
         }
     }
 }