Limit where were respond to test messages
This commit is contained in:
parent
560bc2f8cb
commit
99866458a4
@ -451,7 +451,7 @@ class Message extends FTNBase
|
|||||||
$return .= $this->subject."\00";
|
$return .= $this->subject."\00";
|
||||||
|
|
||||||
if (! $this->isNetmail())
|
if (! $this->isNetmail())
|
||||||
$return .= sprintf("AREA:%s\r",$this->echoarea);
|
$return .= sprintf("AREA:%s\r",strtoupper($this->echoarea));
|
||||||
|
|
||||||
// If the message is local, then our kludges are not in the msg itself, we'll add them
|
// If the message is local, then our kludges are not in the msg itself, we'll add them
|
||||||
if ($this->isFlagSet(self::FLAG_LOCAL)) {
|
if ($this->isFlagSet(self::FLAG_LOCAL)) {
|
||||||
@ -573,7 +573,7 @@ class Message extends FTNBase
|
|||||||
|
|
||||||
// Check if this is an Echomail
|
// Check if this is an Echomail
|
||||||
if (! strncmp(substr($msg,self::HEADER_LEN+$ptr),'AREA:',5)) {
|
if (! strncmp(substr($msg,self::HEADER_LEN+$ptr),'AREA:',5)) {
|
||||||
$o->echoarea = substr($msg,self::HEADER_LEN+$ptr+5,strpos($msg,"\r",self::HEADER_LEN+$ptr+5)-(self::HEADER_LEN+$ptr+5));
|
$o->echoarea = strtoupper(substr($msg,self::HEADER_LEN+$ptr+5,strpos($msg,"\r",self::HEADER_LEN+$ptr+5)-(self::HEADER_LEN+$ptr+5)));
|
||||||
$ptr += strlen($o->echoarea)+5+1;
|
$ptr += strlen($o->echoarea)+5+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,11 +2,20 @@
|
|||||||
|
|
||||||
namespace App\Classes\FTN;
|
namespace App\Classes\FTN;
|
||||||
|
|
||||||
|
use App\Models\Echoarea;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract class to hold the common functions for automatic responding to echomail/netmail messages
|
* Abstract class to hold the common functions for automatic responding to echomail/netmail messages
|
||||||
*/
|
*/
|
||||||
abstract class Process
|
abstract class Process
|
||||||
{
|
{
|
||||||
|
public static function canProcess(string $echoarea): bool
|
||||||
|
{
|
||||||
|
$eao = Echoarea::where('name',$echoarea)->single();
|
||||||
|
|
||||||
|
return $eao && $eao->automsgs;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return TRUE if the process class handled the message.
|
* Return TRUE if the process class handled the message.
|
||||||
*
|
*
|
||||||
|
@ -21,11 +21,12 @@ final class Test extends Process
|
|||||||
|
|
||||||
public static function handle(Message $msg): bool
|
public static function handle(Message $msg): bool
|
||||||
{
|
{
|
||||||
if ((strtolower($msg->user_to) !== 'all') || ! in_array(strtolower($msg->subject),self::testing))
|
if (! self::canProcess($msg->echoarea)
|
||||||
|
|| (strtolower($msg->user_to) !== 'all')
|
||||||
|
|| (! in_array(strtolower($msg->subject),self::testing)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
// @todo Need to limit this to areas defined in config.
|
Log::info(sprintf('%s:- Processing TEST message from (%s) [%s] in [%s]',self::LOGKEY,$msg->user_from,$msg->fftn,$msg->echoarea));
|
||||||
Log::info(sprintf('%s:- Processing TEST message from (%s) [%s]',self::LOGKEY,$msg->user_from,$msg->fftn));
|
|
||||||
|
|
||||||
Notification::route('echomail',$msg->echoarea)->notify(new TestNotification($msg));
|
Notification::route('echomail',$msg->echoarea)->notify(new TestNotification($msg));
|
||||||
|
|
||||||
|
@ -22,11 +22,12 @@ class EchoareaController extends Controller
|
|||||||
'description' => 'required',
|
'description' => 'required',
|
||||||
'active' => 'required|boolean',
|
'active' => 'required|boolean',
|
||||||
'show' => 'required|boolean',
|
'show' => 'required|boolean',
|
||||||
|
'automsgs' => 'required|boolean',
|
||||||
'sec_read' => 'required|integer|min:0|max:7',
|
'sec_read' => 'required|integer|min:0|max:7',
|
||||||
'sec_write' => 'required|integer|min:0|max:7',
|
'sec_write' => 'required|integer|min:0|max:7',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
foreach (['name','description','active','show','notes','domain_id'] as $key)
|
foreach (['name','description','active','show','notes','domain_id','automsgs'] as $key)
|
||||||
$o->{$key} = $request->post($key);
|
$o->{$key} = $request->post($key);
|
||||||
|
|
||||||
$o->setRead($request->post('sec_read'));
|
$o->setRead($request->post('sec_read'));
|
||||||
|
28
database/migrations/2023_09_12_171249_echoarea_test_msgs.php
Normal file
28
database/migrations/2023_09_12_171249_echoarea_test_msgs.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('echoareas',function (Blueprint $table) {
|
||||||
|
$table->boolean('automsgs')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('echoareas',function (Blueprint $table) {
|
||||||
|
$table->dropColumn('automsgs');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
@ -35,7 +35,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-4">
|
<div class="col-3">
|
||||||
<label for="name" class="form-label">Name</label>
|
<label for="name" class="form-label">Name</label>
|
||||||
<div class="input-group has-validation">
|
<div class="input-group has-validation">
|
||||||
<span class="input-group-text"><i class="bi bi-tag-fill"></i></span>
|
<span class="input-group-text"><i class="bi bi-tag-fill"></i></span>
|
||||||
@ -54,10 +54,10 @@
|
|||||||
<label for="active" class="form-label">Active</label>
|
<label for="active" class="form-label">Active</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<input type="radio" class="btn-check" name="active" id="active_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('active',$o->active ?? TRUE))checked @endif>
|
<input type="radio" class="btn-check" name="active" id="active_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('active',$o->active ?? FALSE))checked @endif>
|
||||||
<label class="btn btn-outline-success" for="active_yes">Yes</label>
|
<label class="btn btn-outline-success" for="active_yes">Yes</label>
|
||||||
|
|
||||||
<input type="radio" class="btn-check btn-danger" name="active" id="active_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('active',$o->active ?? TRUE))checked @endif>
|
<input type="radio" class="btn-check btn-danger" name="active" id="active_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('active',$o->active ?? FALSE))checked @endif>
|
||||||
<label class="btn btn-outline-danger" for="active_no">No</label>
|
<label class="btn btn-outline-danger" for="active_no">No</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -67,14 +67,27 @@
|
|||||||
<label for="show" class="form-label">Show <i class="bi bi-info-circle" title="Show this area in the activity reports"></i></label>
|
<label for="show" class="form-label">Show <i class="bi bi-info-circle" title="Show this area in the activity reports"></i></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<input type="radio" class="btn-check" name="show" id="show_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('show',$o->show ?? TRUE))checked @endif>
|
<input type="radio" class="btn-check" name="show" id="show_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('show',$o->show ?? FALSE))checked @endif>
|
||||||
<label class="btn btn-outline-success" for="show_yes">Yes</label>
|
<label class="btn btn-outline-success" for="show_yes">Yes</label>
|
||||||
|
|
||||||
<input type="radio" class="btn-check btn-danger" name="show" id="show_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('show',$o->show ?? TRUE))checked @endif>
|
<input type="radio" class="btn-check btn-danger" name="show" id="show_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('show',$o->show ?? FALSE))checked @endif>
|
||||||
<label class="btn btn-outline-danger" for="show_no">No</label>
|
<label class="btn btn-outline-danger" for="show_no">No</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-2">
|
||||||
|
<label for="automsgs" class="form-label">Auto Messages <i class="bi bi-info-circle" title="Automatically respond to some messages"></i></label>
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="btn-group" role="group">
|
||||||
|
<input type="radio" class="btn-check" name="automsgs" id="automsgs_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('automsgs',$o->automsgs ?? FALSE))checked @endif>
|
||||||
|
<label class="btn btn-outline-success" for="automsgs_yes">Yes</label>
|
||||||
|
|
||||||
|
<input type="radio" class="btn-check btn-danger" name="automsgs" id="automsgs_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('automsgs',$o->automsgs ?? FALSE))checked @endif>
|
||||||
|
<label class="btn btn-outline-danger" for="automsgs_no">No</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
Loading…
Reference in New Issue
Block a user