Work on registration of existing systems to users
This commit is contained in:
104
app/Notifications/AddressLink.php
Normal file
104
app/Notifications/AddressLink.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
namespace App\Notifications;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Classes\{ANSI,Fonts\Thin,Page};
|
||||
use App\Classes\Fonts\Thick;
|
||||
use App\Classes\FTN\Message;
|
||||
use App\Models\{Address,Netmail,Setup,User};
|
||||
|
||||
class AddressLink extends Notification //implements ShouldQueue
|
||||
{
|
||||
private const LOGKEY = 'NAL';
|
||||
|
||||
use Queueable;
|
||||
|
||||
private Address $ao;
|
||||
private User $uo;
|
||||
|
||||
/**
|
||||
* Create a netmail to enable a sysop to activate an address.
|
||||
*
|
||||
* @param Address $ao
|
||||
* @param User $uo
|
||||
*/
|
||||
public function __construct(Address $ao,User $uo)
|
||||
{
|
||||
$this->queue = 'netmail';
|
||||
$this->ao = $ao;
|
||||
$this->uo = $uo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the notification's delivery channels.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @return array
|
||||
*/
|
||||
public function via($notifiable)
|
||||
{
|
||||
return ['netmail'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mail representation of the notification.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @return Netmail
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function toNetmail($notifiable): Netmail
|
||||
{
|
||||
Log::info(sprintf('%s:Sending a link code for address [%s]',self::LOGKEY,$this->ao->ftn));
|
||||
|
||||
$so = Setup::findOrFail(config('app.id'))->system;
|
||||
|
||||
$o = new Netmail;
|
||||
$o->to = $this->ao->system->sysop;
|
||||
$o->from = Setup::PRODUCT_NAME;
|
||||
$o->subject = 'Address Link Code';
|
||||
$o->datetime = Carbon::now();
|
||||
$o->tzoffset = $o->datetime->utcOffset();
|
||||
|
||||
$o->fftn_id = $so->match($this->ao->zone)->first()->id;
|
||||
$o->tftn_id = $this->ao->id;
|
||||
$o->flags = Message::FLAG_LOCAL;
|
||||
$o->cost = 0;
|
||||
|
||||
$o->tagline = 'Address Linking...';
|
||||
$o->tearline = sprintf('%s (%04X)',Setup::PRODUCT_NAME,Setup::PRODUCT_ID);
|
||||
|
||||
// Message
|
||||
$msg = new Page;
|
||||
$msg->addLogo(new ANSI(base_path('public/logo/netmail.bin')));
|
||||
|
||||
$header = new Thick;
|
||||
$header->addText(ANSI::ansi_code([1,37]).'Clearing Houz');
|
||||
$msg->addHeader($header,'FTN Mailer and Tosser',TRUE,0xc4);
|
||||
|
||||
$lbc = new Thin;
|
||||
$lbc->addText('#link');
|
||||
$msg->addLeftBoxContent($lbc);
|
||||
|
||||
$msg->addText(sprintf(
|
||||
"Hi %s,\r\r".
|
||||
"This message is to link your address [%s] to your user ID in the Clearing Houz web site.\r\r".
|
||||
"If you didnt start this process, then you can safely ignore this netmail. But if you wanted to link this address, please head over to [%s] and paste in the following:\r\r%s\r",
|
||||
$this->ao->system->sysop,
|
||||
$this->ao->ftn3d,
|
||||
url('/link'),
|
||||
$this->ao->set_activation($this->uo)
|
||||
));
|
||||
|
||||
$o->msg = $msg->render();
|
||||
$o->save();
|
||||
|
||||
return $o;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user