Enabled default routing
This commit is contained in:
@@ -38,42 +38,48 @@ class Address extends Model
|
||||
if (! $this->session('sespass'))
|
||||
return $this->hasMany(self::class,'id','void');
|
||||
|
||||
switch ($this->role) {
|
||||
case DomainController::NODE_ZC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id);
|
||||
if (! $this->session('default')) {
|
||||
switch ($this->role) {
|
||||
case DomainController::NODE_ZC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case DomainController::NODE_RC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id)
|
||||
->where('region_id',$this->region_id);
|
||||
case DomainController::NODE_RC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id)
|
||||
->where('region_id',$this->region_id);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case DomainController::NODE_NC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id)
|
||||
->where('region_id',$this->region_id)
|
||||
->where('host_id',$this->host_id);
|
||||
case DomainController::NODE_NC:
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id)
|
||||
->where('region_id',$this->region_id)
|
||||
->where('host_id',$this->host_id);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case DomainController::NODE_HC:
|
||||
// Identify our children.
|
||||
$children = self::select('addresses.*')
|
||||
->where('hub_id',$this->id);
|
||||
case DomainController::NODE_HC:
|
||||
// Identify our children.
|
||||
$children = self::select('addresses.*')
|
||||
->where('hub_id',$this->id);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case DomainController::NODE_ACTIVE:
|
||||
case DomainController::NODE_POINT:
|
||||
// Nodes dont have children, but must return a relationship instance
|
||||
return $this->hasOne(self::class,NULL,'void');
|
||||
case DomainController::NODE_ACTIVE:
|
||||
case DomainController::NODE_POINT:
|
||||
// Nodes dont have children, but must return a relationship instance
|
||||
return $this->hasOne(self::class,NULL,'void');
|
||||
|
||||
default:
|
||||
throw new Exception('Unknown role: '.serialize($this->role));
|
||||
default:
|
||||
throw new Exception('Unknown role: '.serialize($this->role));
|
||||
}
|
||||
|
||||
} else {
|
||||
$children = self::select('addresses.*')
|
||||
->where('zone_id',$this->zone_id);
|
||||
}
|
||||
|
||||
// Remove any children that we have session details for (SAME AS HC)
|
||||
@@ -116,9 +122,12 @@ class Address extends Model
|
||||
return $this;
|
||||
|
||||
switch ($this->role) {
|
||||
// ZCs dont have parents.
|
||||
// ZCs dont have parents, but we may have a default
|
||||
case DomainController::NODE_ZC:
|
||||
return NULL;
|
||||
if (($x=$this->zone->systems->where('pivot.default',TRUE))->count())
|
||||
return $x->first()->match($this->zone)->first();
|
||||
else
|
||||
return NULL;
|
||||
|
||||
// RC
|
||||
case DomainController::NODE_RC:
|
||||
|
@@ -34,7 +34,7 @@ class System extends Model
|
||||
public function sessions()
|
||||
{
|
||||
return $this->belongsToMany(Zone::class)
|
||||
->withPivot(['sespass','pktpass','ticpass','fixpass','zt_ipv4','zt_ipv6']);
|
||||
->withPivot(['sespass','pktpass','ticpass','fixpass','zt_ipv4','zt_ipv6','default']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -40,4 +40,13 @@ class Zone extends Model
|
||||
{
|
||||
return $this->belongsTo(System::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default route for this zone
|
||||
*/
|
||||
public function systems()
|
||||
{
|
||||
return $this->belongsToMany(System::class)
|
||||
->withPivot(['default']);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user