105 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
namespace Nextend\SmartSlider3\Application\Model;
 | 
						|
 | 
						|
 | 
						|
use Nextend\Framework\Model\StorageSectionManager;
 | 
						|
use Nextend\Framework\Notification\Notification;
 | 
						|
use Nextend\Framework\Pattern\SingletonTrait;
 | 
						|
use Nextend\SmartSlider3\SmartSlider3Info;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class ModelLicense
 | 
						|
 *
 | 
						|
 * @package Nextend\SmartSlider3\Application\Model
 | 
						|
 *
 | 
						|
 */
 | 
						|
class ModelLicense {
 | 
						|
 | 
						|
    use SingletonTrait;
 | 
						|
 | 
						|
    private $key;
 | 
						|
 | 
						|
    public function __construct() {
 | 
						|
        if (defined('SMART_SLIDER_LICENSE')) {
 | 
						|
            $this->key = SMART_SLIDER_LICENSE;
 | 
						|
        } else {
 | 
						|
            $this->key = StorageSectionManager::getStorage('smartslider')
 | 
						|
                                              ->get('license', 'key');
 | 
						|
        }
 | 
						|
    
 | 
						|
    }
 | 
						|
 | 
						|
    public function hasKey() {
 | 
						|
        return !empty($this->key);
 | 
						|
    }
 | 
						|
 | 
						|
    public function maybeActiveLazy() {
 | 
						|
        $lastActive = StorageSectionManager::getStorage('smartslider')
 | 
						|
                                           ->get('license', 'isActive');
 | 
						|
 | 
						|
        return $lastActive > 0;
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public function maybeActive() {
 | 
						|
        $lastActive = StorageSectionManager::getStorage('smartslider')
 | 
						|
                                           ->get('license', 'isActive');
 | 
						|
        if ($lastActive && $lastActive > strtotime("-1 week")) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    public function getKey() {
 | 
						|
        return $this->key;
 | 
						|
    }
 | 
						|
 | 
						|
    public function setKey($licenseKey) {
 | 
						|
        StorageSectionManager::getStorage('smartslider')
 | 
						|
                             ->set('license', 'key', $licenseKey);
 | 
						|
        StorageSectionManager::getStorage('smartslider')
 | 
						|
                             ->set('license', 'isActive', time());
 | 
						|
        if ($licenseKey == '') {
 | 
						|
            StorageSectionManager::getStorage('smartslider')
 | 
						|
                                 ->set('license', 'isActive', '0');
 | 
						|
        }
 | 
						|
        $this->key = $licenseKey;
 | 
						|
    
 | 
						|
    }
 | 
						|
 | 
						|
    public function checkKey($license, $action = 'licensecheck') {
 | 
						|
        return 'OK';
 | 
						|
    
 | 
						|
    }
 | 
						|
 | 
						|
    public function isActive($cacheAccepted = true) {
 | 
						|
        if ($cacheAccepted && $this->maybeActive()) {
 | 
						|
            return 'OK';
 | 
						|
        }
 | 
						|
        $status = $this->checkKey($this->key);
 | 
						|
        if ($this->hasKey() && $status == 'OK') {
 | 
						|
            StorageSectionManager::getStorage('smartslider')
 | 
						|
                                 ->set('license', 'isActive', time());
 | 
						|
 | 
						|
            return $status;
 | 
						|
        }
 | 
						|
        StorageSectionManager::getStorage('smartslider')
 | 
						|
                             ->set('license', 'isActive', '0');
 | 
						|
 | 
						|
        return $status;
 | 
						|
    }
 | 
						|
 | 
						|
    public function deAuthorize() {
 | 
						|
        if ($this->hasKey()) {
 | 
						|
            $this->setKey('');
 | 
						|
            Notification::notice(n2_('Smart Slider 3 deactivated on this site!'));
 | 
						|
 | 
						|
            return 'OK';
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
} |