HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/apklausos/tests/data/plugins/EmailTestPlugin.php
<?php

use LimeSurvey\PluginManager\SmtpOAuthPluginBase;

class EmailPlugin extends SmtpOAuthPluginBase
{
    protected $storage = 'DbStorage';
    protected static $description = 'Dummy plugin for testing the EmailPluginBase class.';
    protected static $name = 'EmailPlugin';

    protected $credentialAttributes = ['clientId', 'clientSecret'];

    public function init()
    {
        $this->subscribe('listEmailPlugins');
    }

    protected function getDisplayName()
    {
        return 'Test Plugin';
    }

    protected function getProvider($credentials)
    {
        return true;
    }

    protected function getAuthorizationOptions()
    {
        return true;
    }

    protected function getOAuthConfigForMailer()
    {
        return true;
    }

    public function isTestCurrentEmailPlugin()
    {
        return $this->isCurrentEmailPlugin();
    }

    public function saveTestPluginSettings($settings)
    {
        $this->saveSettings($settings);
    }

    public function getTestPluginCredentials()
    {
        return $this->getCredentials();
    }

    public function validateTestPluginCredentials($credentials)
    {
        return $this->validateCredentials($credentials);
    }

    public function haveTestPluginCredentialsChanged($oldCredentials, $newCredentials)
    {
        return $this->haveCredentialsChanged($oldCredentials, $newCredentials);
    }

    public function saveTestPluginRefreshToken($refreshToken, $credentials)
    {
        $this->saveRefreshToken($refreshToken, $credentials);
    }

    public function getPluginProperty($name)
    {
        return $this->get($name);
    }

    public function listEmailPlugins()
    {
        $event = $this->getEvent();
        $event->append('plugins', [
            'Test' => $this->getEmailPluginInfo()
        ]);
    }
}