mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-11-04 08:56: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();
 | 
						|
    }
 | 
						|
}
 |