You've already forked lubo_comment_query
							
							
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Models;
 | |
| 
 | |
| use App\Models\Casts\TrustPath;
 | |
| use App\Models\Casts\Uuid;
 | |
| use App\Models\Casts\WebAuthnBase64;
 | |
| use Illuminate\Database\Eloquent\Model;
 | |
| use Webauthn\PublicKeyCredentialSource;
 | |
| 
 | |
| class WebauthnCredential extends Model
 | |
| {
 | |
|     protected $guarded = ['id'];
 | |
| 
 | |
|     protected $visible = [
 | |
|         'id',
 | |
|         'name',
 | |
|         'type',
 | |
|         'attachment_type',
 | |
|         'transports',
 | |
|         'type_free',
 | |
|         'last_used_at',
 | |
|         'created_at',
 | |
|         'updated_at',
 | |
|     ];
 | |
|     protected $casts = [
 | |
|         'aaguid' => Uuid::class,
 | |
|         'counter' => 'integer',
 | |
|         'credential_id' => WebAuthnBase64::class,
 | |
|         'credential_public_key' => WebAuthnBase64::class,
 | |
|         'transports' => 'array',
 | |
|         'trust_path' => TrustPath::class,
 | |
|         'last_used_at' => 'immutable_datetime',
 | |
|     ];
 | |
| 
 | |
|     public function getPublicKeyCredentialSourceAttribute(): PublicKeyCredentialSource
 | |
|     {
 | |
|         return new PublicKeyCredentialSource(
 | |
|             $this->credential_id,
 | |
|             $this->type,
 | |
|             $this->transports,
 | |
|             $this->attestation_type,
 | |
|             $this->trust_path,
 | |
|             $this->aaguid ?? \Ramsey\Uuid\Uuid::uuid4(),
 | |
|             $this->credential_public_key,
 | |
|             (string) $this->user_id,
 | |
|             $this->counter,
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function setPublicKeyCredentialSourceAttribute(PublicKeyCredentialSource $source): void
 | |
|     {
 | |
|         $this->credential_id = $source->getPublicKeyCredentialId();
 | |
|         $this->type = $source->getType();
 | |
|         $this->transports = $source->getTransports();
 | |
|         $this->attestation_type = $source->getAttestationType();
 | |
|         $this->trust_path = $source->getTrustPath();
 | |
|         $this->aaguid = $source->getAaguid();
 | |
|         $this->credential_public_key = $source->getCredentialPublicKey();
 | |
|         $this->counter = $source->getCounter();
 | |
|         $this->user_id = $source->getUserHandle();
 | |
|     }
 | |
| 
 | |
|     public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo
 | |
|     {
 | |
|         return $this->belongsTo(User::class, "user_id", "id");
 | |
|     }
 | |
| }
 |