mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	Push Notifications (Mobile and PC) (#13277)
* Update manifest and add service worker cleanup icons a bit * Push notifications WIP * navigate working * cleanup * acknowledge wired up * Set VAPID keys on composer install * Component to control notification permissions. * Allow all user option to validate * Enable on browser load if transport exists. * Check for transport before showing user permissions translations * Documentation * style fixes * access via the attribute model * fix alerting test * update schema * cleanup subscription on disable * non-configurable db and table for webpush subscriptions (respect system connection) * revert AlertTransport change hopefully phpstan can figure it out * phpstan fixes * Support custom details display * Match transport names to brand's preferred display * less duplicate id errors * Tests are done in Laravel code now so remove legacy function usage... could be better, but ok * Style fixes * Style fixes 2 * Fix alert test * Doc updates requires HTTPS and GMP * unregister subscription when permission is set to denied * cleanup after user deletion * delete the right thing * fix whitespace * update install docs to include php-gmp * suggest ext-gmp * update javascript * Update functions.php Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										45
									
								
								app/Models/AlertTransport.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								app/Models/AlertTransport.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models;
 | 
			
		||||
 | 
			
		||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
 | 
			
		||||
use Illuminate\Database\Eloquent\Model;
 | 
			
		||||
use LibreNMS\Alert\Transport;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \App\Models\AlertTransport
 | 
			
		||||
 *
 | 
			
		||||
 * @property int $transport_id
 | 
			
		||||
 * @property string $transport_name
 | 
			
		||||
 * @property string $transport_type
 | 
			
		||||
 * @property bool $is_default
 | 
			
		||||
 * @property array|null $transport_config
 | 
			
		||||
 *
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport newModelQuery()
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport newQuery()
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport query()
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport whereIsDefault($value)
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport whereTransportConfig($value)
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport whereTransportId($value)
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport whereTransportName($value)
 | 
			
		||||
 * @method static \Illuminate\Database\Eloquent\Builder|AlertTransport whereTransportType($value)
 | 
			
		||||
 * @mixin \Eloquent
 | 
			
		||||
 */
 | 
			
		||||
class AlertTransport extends Model
 | 
			
		||||
{
 | 
			
		||||
    use HasFactory;
 | 
			
		||||
 | 
			
		||||
    protected $primaryKey = 'transport_id';
 | 
			
		||||
    public $timestamps = false;
 | 
			
		||||
    protected $casts = [
 | 
			
		||||
        'is_default' => 'boolean',
 | 
			
		||||
        'transport_config' => 'array',
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    public function instance(): Transport
 | 
			
		||||
    {
 | 
			
		||||
        $class = Transport::getClass($this->transport_type);
 | 
			
		||||
 | 
			
		||||
        return new $class($this);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user