| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- <?php
- namespace MGModule\DNSManager2\models\custom\package;
- use MGModule\DNSManager2 as main;
- use \MGModule\DNSManager2\models\custom\package\setting\PackageSettingEnum;
- use MGModule\DNSManager2\mgLibs\MySQL as mysql;
- /**
- * Log class
- *
- * @Table(name=package)
- */
- class Package extends main\mgLibs\models\orm
- {
- /**
- * ID field
- *
- * @Column(id)
- * @var int
- */
- public $id;
-
- /**
- *
- * @Column(varchar)
- * @var string
- */
- public $name;
-
- /**
- *
- * @Column(int=11, refrence=models\custom\set\Set::id)
- * @var int
- */
- public $defaultset;
-
- /**
- *
- * @Column(varchar)
- * @var string
- */
- public $status;
-
- public function setSetting($key, $value) {
- if(!$setting = $this->getSettings($key)) {
- $setting = new setting\PackageSetting();
- $setting->packageid = $this->id;
- $setting->key = $key;
- }
- $setting->value = $value;
- $setting->save();
- return $setting;
- }
-
- public function getSettings($key = false) {
- return $key === false?setting\Repository::factory()->byPackageID($this->id)->getWithKeys()
- : setting\PackageSetting::factory()->byPackageAndKey($this->id, $key);
- }
-
- public function getItems($type = false, $relid = false)
- {
- $rep = item\Repository::factory()->byPackageID($this->id);
- if($type === false)
- {
- $out = array();
- foreach($rep->get() as $item)
- {
- $out[$item->type][] = $item;
- }
-
- return $out;
- }
- elseif($relid === false)
- {
- return $rep->byType($type)->get();
- }
- else
- {
- return $rep->byType($type)->byRelID($relid)->one();
- }
- }
-
- public function addItem($type, $relid, $limit) {
- if(!$item = $this->getItems($type, $relid)) {
- $item = new item\PackageItem();
- $item->packageid = $this->id;
- $item->type = $type;
- $item->relid = $relid;
- }
- $item->limit = $limit;
- $item->save();
- return $item;
- }
-
- public function removeItem($type, $relid) {
- if($item = $this->getItems($type, $relid)) {
- $item->delete();
- }
- }
-
- /** zwraca PackageServer, które ma metodę getServer */
- public function getServers($serverid = false) {
- $rep = server\Repository::factory()->byPackageID($this->id);
- if($serverid === false) {
- return $rep->get();
- } else {
- return $rep->byServerID($serverid)->one();
- }
- }
-
- public function addServer($serverid, $isMaster = false) {
- if(!$ps = $this->getServers($serverid)) {
- $ps = new server\PackageServer();
- $ps->packageid = $this->id;
- $ps->serverid = $serverid;
- $ps->setMaster($isMaster);
- $ps->save();
- } else {
- $ps->setMaster($isMaster);
- $ps->save();
- }
- return $ps;
- }
-
- public function removeServer($serverid) {
- if($ps = $this->getServers($serverid)) {
- $ps->delete();
- }
- }
-
- public function getSets($setid = false) {
- $rep = set\Repository::factory()->byPackageID($this->id);
- if($setid === false) {
- return $rep->get();
- } else {
- return $rep->bySetID($setid)->one();
- }
- }
-
-
- public function getAdminSets( )
- {
- $setConfig = setting\Repository::factory()->byPackageID( $this->id )->byKey( PackageSettingEnum::DNS_RECORD_SET )->one();
- return unserialize( $setConfig->value );
- }
-
-
- public function addSet($setid) {
- if(!$ps = $this->getSets($setid)) {
- $ps = new set\PackageSet();
- $ps->packageid = $this->id;
- $ps->setid = $setid;
- $ps->save();
- }
- return $ps;
- }
-
- public function removeSet($setid) {
- if($ps = $this->getSets($setid)) {
- $ps->delete();
- }
- }
-
- public function setDefaultSet($setid) {
- $this->defaultset = $setid;
- $this->save();
- return $this;
- }
-
- public function getDefaultSet()
- {
- try
- {
- $set = $this->defaultset > 0 ? new main\models\custom\set\Set($this->defaultset) : false;
- }
- catch(\Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- }
- return $set;
- }
-
- public function delete() {
- mysql\query::startTransaction();
- item\Repository::factory()->byPackageID($this->id)->delete();
- server\Repository::factory()->byPackageID($this->id)->delete();
- set\Repository::factory()->byPackageID($this->id)->delete();
- setting\Repository::factory()->byPackageID($this->id)->delete();
- parent::delete();
- mysql\query::endTransaction();
- }
-
- public function enable() {
- $this->status = 1;
- $this->save();
- }
-
- public function disable() {
- $this->status = 0;
- $this->save();
- }
-
- public function isEnabled() {
- return $this->status == 1;
- }
-
- /**
- *
- * @return main\models\custom\server\Server
- */
- public function getFirstActiveServer() {
- foreach($this->getServers() as $server) {
- $server = $server->getServer();
- if($server->isEnabled()) {
- return $server;
- }
- }
- return false;
- }
-
- public function getRegistrarDomain($packageId=null, $tld=null)
- {
- $regDomain = registrar\Repository::factory();
- if($packageId)
- {
- $regDomain->byPackageID($packageId);
- }
-
- if($tld)
- {
- $regDomain->byTld($tld);
- }
-
- return $regDomain->get();
- }
-
- public function addRegistrarDomain($tld)
- {
- if(!$this->getRegistrarDomain($this->id, $tld))
- {
- $regDomain = new registrar\PackageRegistrar();
- $regDomain->packageid = $this->id;
- $regDomain->tld = $tld;
- $itemId = $this->getItems(item\PackageItemTypeEnum::DOMAIN, $tld);
- $regDomain->itemid = $itemId->id;
- $regDomain->save();
- }
- }
-
- public function removeRegistrarDomain($tld)
- {
- $regDomain = $this->getRegistrarDomain($this->id, $tld);
- if(!empty($regDomain))
- {
- foreach ($regDomain as $value)
- {
- $value->delete();
- }
- }
- }
- }
|