TfaInterface.php 3.53 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
<?php
/**
 * MageSpecialist
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to info@magespecialist.it so we can send you a copy immediately.
 *
 * @category   MSP
 * @package    MSP_TwoFactorAuth
 * @copyright  Copyright (c) 2017 Skeeller srl (http://www.magespecialist.it)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */

namespace MSP\TwoFactorAuth\Api;

interface TfaInterface
{
    const XML_PATH_ENABLED = 'msp_securitysuite_twofactorauth/general/enabled';
    const XML_PATH_FORCED_PROVIDERS = 'msp_securitysuite_twofactorauth/general/force_providers';

    /**
     * Return true if 2FA is enabled
     * @return boolean
     */
    public function isEnabled();

    /**
     * Get provider by code
     * @param string $providerCode
     * @param bool $onlyEnabled = true
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface|null
     */
    public function getProvider($providerCode, $onlyEnabled = true);

    /**
     * Retrieve forced providers list
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface[]
     */
    public function getForcedProviders();

    /**
     * Get a user provider
     * @param int $userId
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface[]
     */
    public function getUserProviders($userId);

    /**
     * Get a list of providers
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface[]
     */
    public function getAllProviders();

    /**
     * Get a list of providers
     * @param string $code
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface
     */

    public function getProviderByCode($code);

    /**
     * Get a list of providers
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface[]
     */
    public function getAllEnabledProviders();

    /**
     * Return a list of trusted devices for given user id
     * @param int $userId
     * @return \MSP\TwoFactorAuth\Api\Data\TrustedInterface[]
     */
    public function getTrustedDevices($userId);

    /**
     * Get allowed URLs
     * @return array
     */
    public function getAllowedUrls();

    /**
     * Returns a list of providers to configure/enroll
     * @param int $userId
     * @return \MSP\TwoFactorAuth\Api\ProviderInterface[]
     */
    public function getProvidersToActivate($userId);

    /**
     * Return true if a provider is allowed for a given user
     * @param int $userId
     * @param string $providerCode
     * @return boolean
     */
    public function getProviderIsAllowed($userId, $providerCode);

    /**
     * Get default provider code
     * @param int $userId
     * @return string
     */
    public function getDefaultProviderCode($userId);

    /**
     * Set default provider code
     * @param int $userId
     * @param string $providerCode
     * @return boolean
     */
    public function setDefaultProviderCode($userId, $providerCode);

    /**
     * Set providers
     * @param int $userId
     * @param string $providersCodes
     * @return boolean
     */
    public function setProvidersCodes($userId, $providersCodes);

    /**
     * Reset default provider code
     * @param int $userId
     * @param string $providerCode
     * @return boolean
     */
    public function resetProviderConfig($userId, $providerCode);
}