mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-10-31 16:26:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Pterodactyl\Repositories\Eloquent;
 | |
| 
 | |
| use Pterodactyl\Models\User;
 | |
| use Pterodactyl\Models\ApiKey;
 | |
| use Illuminate\Support\Collection;
 | |
| use Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface;
 | |
| 
 | |
| class ApiKeyRepository extends EloquentRepository implements ApiKeyRepositoryInterface
 | |
| {
 | |
|     /**
 | |
|      * Return the model backing this repository.
 | |
|      *
 | |
|      * @return string
 | |
|      */
 | |
|     public function model()
 | |
|     {
 | |
|         return ApiKey::class;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get all of the account API keys that exist for a specific user.
 | |
|      *
 | |
|      * @param \Pterodactyl\Models\User $user
 | |
|      * @return \Illuminate\Support\Collection
 | |
|      */
 | |
|     public function getAccountKeys(User $user): Collection
 | |
|     {
 | |
|         return $this->getBuilder()->where('user_id', $user->id)
 | |
|             ->where('key_type', ApiKey::TYPE_ACCOUNT)
 | |
|             ->get($this->getColumns());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get all of the application API keys that exist for a specific user.
 | |
|      *
 | |
|      * @param \Pterodactyl\Models\User $user
 | |
|      * @return \Illuminate\Support\Collection
 | |
|      */
 | |
|     public function getApplicationKeys(User $user): Collection
 | |
|     {
 | |
|         return $this->getBuilder()->where('user_id', $user->id)
 | |
|             ->where('key_type', ApiKey::TYPE_APPLICATION)
 | |
|             ->get($this->getColumns());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Delete an account API key from the panel for a specific user.
 | |
|      *
 | |
|      * @param \Pterodactyl\Models\User $user
 | |
|      * @param string                   $identifier
 | |
|      * @return int
 | |
|      */
 | |
|     public function deleteAccountKey(User $user, string $identifier): int
 | |
|     {
 | |
|         return $this->getBuilder()->where('user_id', $user->id)
 | |
|             ->where('key_type', ApiKey::TYPE_ACCOUNT)
 | |
|             ->where('identifier', $identifier)
 | |
|             ->delete();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Delete an application API key from the panel for a specific user.
 | |
|      *
 | |
|      * @param \Pterodactyl\Models\User $user
 | |
|      * @param string                   $identifier
 | |
|      * @return int
 | |
|      */
 | |
|     public function deleteApplicationKey(User $user, string $identifier): int
 | |
|     {
 | |
|         return $this->getBuilder()->where('user_id', $user->id)
 | |
|             ->where('key_type', ApiKey::TYPE_APPLICATION)
 | |
|             ->where('identifier', $identifier)
 | |
|             ->delete();
 | |
|     }
 | |
| }
 | 
