Rework address roles, making Address::role optional, rework determining uplink/downlinks/parent/children

This commit is contained in:
2024-05-09 21:22:30 +10:00
parent 2765a27db8
commit 23159d19d5
23 changed files with 667 additions and 421 deletions

View File

@@ -178,6 +178,7 @@ class NodelistImport implements ShouldQueue
}
$node = 0;
$role = NULL;
switch ($fields[0]) {
case 'Zone':
@@ -193,7 +194,6 @@ class NodelistImport implements ShouldQueue
$region = 0;
$host = 0;
$hub_id = NULL;
$role = Address::NODE_ZC;
break;
@@ -201,14 +201,12 @@ class NodelistImport implements ShouldQueue
$region = (int)$fields[1];
$host = (int)$fields[1];
$hub_id = NULL;
$role = Address::NODE_RC;
break;
case 'Host':
$host = (int)$fields[1];
$hub_id = NULL;
$role = Address::NODE_NC;
break;
@@ -238,7 +236,6 @@ class NodelistImport implements ShouldQueue
case '':
$node = $fields[1];
$role = Address::NODE_ACTIVE;
break;
default:
@@ -431,7 +428,7 @@ class NodelistImport implements ShouldQueue
$so->sysop = $sysop;
// We have the same name has changed (except for ZC/RC addresses)
} elseif (($so->name !== $system) && (! ((Address::NODE_ZC|Address::NODE_RC|Address::NODE_NC) & $ao->role))) {
} elseif (($so->name !== $system) && (! ((Address::NODE_ZC|Address::NODE_RC|Address::NODE_NC) & $ao->role_id))) {
Log::alert(sprintf('%s:! System Name changed for BBS [%s:%s] to [%s]',
self::LOGKEY,$so->id,$so->name,$system));
@@ -499,6 +496,7 @@ class NodelistImport implements ShouldQueue
throw new \Exception($e->getMessage());
}
// @todo This should be a bit test ($ao->rule & Address::NODE_PVT)?
if ($methods->count() && ($ao->role != Address::NODE_PVT)) {
$methods->transform(function($item) { $item['active'] = Arr::get($item,'active',TRUE); return $item; });
$so->mailers()->sync($methods);
@@ -519,7 +517,7 @@ class NodelistImport implements ShouldQueue
try {
$so->addresses()->save($ao);
if ($ao->role === Address::NODE_HC)
if ($ao->role_id === Address::NODE_HC)
$hub_id = $ao->id;
$no->addresses()->attach($ao,['role'=>$ao->role]);