closed #114 Added check for already existing system when adding a new one. (fixed PDO 'duplicate entry' error)
This commit is contained in:
@@ -49,8 +49,8 @@ class Connection extends Controller\AccessController{
|
||||
$map->getById( (int)$mapData['id'] );
|
||||
|
||||
if( $map->hasAccess($activeCharacter) ){
|
||||
$source = $map->getSystem( (int)$connectionData['source'] );
|
||||
$target = $map->getSystem( (int)$connectionData['target'] );
|
||||
$source = $map->getSystemById( $connectionData['source'] );
|
||||
$target = $map->getSystemById( $connectionData['target'] );
|
||||
|
||||
if(
|
||||
!is_null($source) &&
|
||||
|
||||
@@ -679,7 +679,7 @@ class Map extends Controller\AccessController {
|
||||
|
||||
// request signature data for a system if user has map access!
|
||||
if( $map->id === $requestSystemData->mapId ){
|
||||
$system = $map->getSystem( $requestSystemData->systemId );
|
||||
$system = $map->getSystemById( $requestSystemData->systemId );
|
||||
|
||||
if( !is_null($system) ){
|
||||
// data for currently selected system
|
||||
|
||||
@@ -196,7 +196,7 @@ class System extends \Controller\AccessController {
|
||||
$mapData = (array)$postData['mapData'];
|
||||
|
||||
if( isset($systemData['id']) ){
|
||||
// update existing system
|
||||
// update existing system (e.g. changed system description) -------------------
|
||||
|
||||
/**
|
||||
* @var $system Model\SystemModel
|
||||
@@ -210,24 +210,27 @@ class System extends \Controller\AccessController {
|
||||
}
|
||||
}
|
||||
}elseif( isset($mapData['id']) ){
|
||||
// save NEW system
|
||||
// save NEW system ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @var $map Model\MapModel
|
||||
*/
|
||||
$map = Model\BasicModel::getNew('MapModel');
|
||||
$map->getById($mapData['id']);
|
||||
if( !$map->dry() ){
|
||||
if( $map->hasAccess($activeCharacter) ){
|
||||
|
||||
$systemData['mapId'] = $map;
|
||||
|
||||
// get static system data (CCP DB)
|
||||
if(
|
||||
!$map->dry() &&
|
||||
$map->hasAccess($activeCharacter)
|
||||
){
|
||||
// make sure system is not already on map
|
||||
// --> (e.g. multiple simultaneously save() calls for the same system)
|
||||
if( is_null( $systemModel = $map->getSystemByCCPId($systemData['systemId']) ) ){
|
||||
// system not found on map -> get static system data (CCP DB)
|
||||
$systemModel = array_values( $this->_getSystemModelByIds([$systemData['systemId']]) )[0];
|
||||
|
||||
$systemModel->createdCharacterId = $activeCharacter;
|
||||
|
||||
}
|
||||
|
||||
// map is not changeable for a system! (security)
|
||||
$systemData['mapId'] = $map;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user