Show netmails to admins, record netmail path in the DB

This commit is contained in:
2023-06-18 23:33:26 +10:00
parent f147b33b60
commit 58341db0fb
10 changed files with 214 additions and 17 deletions

View File

@@ -10,7 +10,7 @@ use Illuminate\Support\Facades\Gate;
use App\Classes\File;
use App\Classes\FTN\Packet;
use App\Models\{Address,Domain,Echomail,Setup};
use App\Models\{Address,Domain,Echomail,Netmail,Setup};
class HomeController extends Controller
{
@@ -97,7 +97,7 @@ class HomeController extends Controller
list($zone_id,$host_id,$node_id,$point_id,$domain) = sscanf($request->query('term'),'%d:%d/%d.%d@%s');
# Look for Systems
// Look for Systems
foreach (Address::select(['systems.name',DB::raw('systems.id AS system_id'),'zones.zone_id','region_id','host_id','node_id','point_id'])
->join('zones',['zones.id'=>'addresses.zone_id'])
->rightjoin('systems',['systems.id'=>'addresses.system_id'])
@@ -124,7 +124,7 @@ class HomeController extends Controller
$result->push(['id'=>$o->system_id,'name'=>$o->name.($ftn ? ' '.$ftn : ''),'value'=>url('system/view',[$o->system_id]),'category'=>'Systems']);
}
# Look for Messages
// Look for Echomail
foreach (Echomail::select(['id','fftn_id','from'])
->where('msgid','like','%'.$request->query('term').'%')
->orWhere('replyid','like','%'.$request->query('term').'%')
@@ -133,6 +133,16 @@ class HomeController extends Controller
$result->push(['id'=>$o->id,'name'=>sprintf('%s (%s)',$o->from,$o->fftn->ftn3d),'value'=>url('echomail/view',[$o->id]),'category'=>'Echomail']);
}
// Look for Netmail
if (Gate::check('admin'))
foreach (Netmail::select(['id','fftn_id','from'])
->where('msgid','like','%'.$request->query('term').'%')
->orWhere('replyid','like','%'.$request->query('term').'%')
->get() as $o)
{
$result->push(['id'=>$o->id,'name'=>sprintf('%s (%s)',$o->from,$o->fftn->ftn3d),'value'=>url('netmail/view',[$o->id]),'category'=>'Netmail']);
}
return $result->unique(['id'])->take(10)->values();
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers;
use App\Models\Netmail;
class NetmailController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function view(Netmail $o)
{
return view('netmail.view')
->with('o',$o);
}
}