Files
crm.clientright.ru/modules/Vtiger/actions/SaveStar.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

63 lines
2.4 KiB
PHP

<?php
/* +**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
* ***********************************************************************************/
class Vtiger_SaveStar_Action extends Vtiger_Mass_Action {
var $followRecordIds = Array();
public function requiresPermission(\Vtiger_Request $request) {
$permissions = parent::requiresPermission($request);
$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record');
return $permissions;
}
function checkPermission(Vtiger_Request $request) {
parent::checkPermission($request);
if ($request->has('selected_ids')) {
$recordIds = $this->getRecordsListFromRequest($request);
foreach ($recordIds as $recordId) {
$moduleName = getSalesEntityType($recordId);
$permissionStatus = Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $recordId);
if($permissionStatus){
$this->followRecordIds[] = $recordId;
}
if(empty($this->followRecordIds)){
throw new AppException(vtranslate('LBL_RECORD_PERMISSION_DENIED'));
}
}
}
return true;
}
public function process(Vtiger_Request $request) {
$module = $request->get('module');
if ($request->has('selected_ids')) {
$recordIds = $this->followRecordIds;
} else {
$recordIds = array($request->get('record'));
}
$moduleUserSpecificTableName = Vtiger_Functions::getUserSpecificTableName($module);
//TODO : Currently we are not doing retrieve_entity_info before doing save since we have only one user specific field(starred)
// if we add more user specific field then we need to peform retrieve_entity_info
foreach ($recordIds as $recordId) {
$focus = CRMEntity::getInstance($module);
$focus->mode = "edit";
$focus->id = $recordId;
$focus->column_fields->startTracking();
$focus->column_fields['starred'] = $request->get('value');
$focus->insertIntoEntityTable($moduleUserSpecificTableName, $module);
}
$response = new Vtiger_Response();
$response->setResult(true);
$response->emit();
}
}