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;
|
|
}
|
|
} |