| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace MGModule\DNSManager2\models\custom\server;
- use MGModule\DNSManager2 as main;
- use MGModule\DNSManager2\mgLibs\MySQL as mysql;
- use MGModule\DNSManager2\mgLibs\custom\dns;
- use MGModule\DNSManager2\mgLibs\custom\SubmoduleCap;
- /**
- * Log class
- *
- * @Table(name=server)
- */
- class Server extends main\mgLibs\models\orm{
- /**
- * ID field
- *
- * @Column(id)
- * @var int
- */
- public $id;
-
- /**
- *
- * @Column(varchar)
- * @var string
- */
- public $name;
-
- /**
- *
- * @Column(varchar)
- * @var string
- */
- public $module;
-
- /**
- *
- * @Column(varchar)
- * @var string
- */
- public $status;
-
- public function getSettings($key = false) {
- return $key === false?setting\Repository::factory()->byServerID($this->id)->getWithKeys()
- : setting\ServerSetting::byServerAndKey($this->id, $key);
- }
-
- public function setSetting($key, $value) {
- if(!$setting = $this->getSettings($key)) {
- $setting = new setting\ServerSetting();
- $setting->serverid = $this->id;
- $setting->key = $key;
- }
- $setting->value = $value;
- $setting->save();
- return $setting;
- }
-
- public function getNameservers($index = false) {
- return $index === false? nameserver\Repository::factory()->byServerID($this->id)->get()
- : nameserver\Repository::factory()->byServerID($this->id)->byIndex(intval($index))->one();
- }
-
- public function setNameserver($index, $address, $ip) {
- if((int)$index > 5) return;
- if(!$ns = $this->getNameservers($index)) {
- $ns = new nameserver\ServerNameserver();
- $ns->serverid = $this->id;
- $ns->index = $index;
- }
- $ns->name = $address;
- $ns->ip = $ip;
- $ns->save();
- return $ns;
- }
-
- public function getModuleConfiguration($key = false) {
- $settings = unserialize($this->getSettings(setting\ServerSettingEnum::MODULE_CONFIGURATION));
- foreach($settings as &$v) $v = htmlspecialchars_decode($v, ENT_QUOTES);
- if($key === false)
- return $settings;
- else {
- return isset($settings[$key])?$settings[$key]:false;
- }
- }
-
- public function isEnabled() {
- return $this->status == 1;
- }
-
- /** @return main\mgLibs\custom\dns\SubmoduleAbstract */
- public function getModule() {
- $module = new SubmoduleCap(dns\Core::getModule($this->module));
- $module->setConfiguration($this->getModuleConfiguration());
- $module->setServer($this);
- //$module->enableDebug();
- return $module;
- }
-
- public function delete() {
- mysql\query::startTransaction();
- nameserver\Repository::factory()->byServerID($this->id)->delete();
- setting\Repository::factory()->byServerID($this->id)->delete();
- parent::delete();
- mysql\query::endTransaction();
- }
-
- public function turnOn() {
- $this->status = 1;
- $this->save();
- }
-
- public function turnOff() {
- $this->status = 0;
- $this->save();
- }
- }
|