1 <?php
2 3 4 5 6 7 8 9 10 11 12 13 14
15
16 App::uses('DashboardAppModel', 'Dashboard.Model');
17
18 19 20
21 class Server extends DashboardAppModel {
22
23 24 25 26
27 public $b3Database = false;
28
29 30 31 32 33
34 public $name = 'Server';
35
36 37 38 39 40
41 public $useTable = 'servers';
42
43 44 45 46 47
48 public $tablePrefix = '';
49
50 51 52 53 54
55 public $belongsTo = array(
56 'ServerGroup' => array(
57 'className' => 'Dashboard.ServerGroup',
58 'foreignKey' => 'server_group_id',
59 )
60 );
61
62 63 64 65 66
67 public $validate = array(
68 'servername' => array(
69 'rule' => 'notEmpty',
70 'required' => true,
71 'message' => 'Please enter a server name',
72 ),
73 'gamename' => array(
74 'rule' => 'notEmpty',
75 'required' => true,
76 'message' => 'Please select your game',
77 ),
78 'dbhost' => array(
79 'rule' => 'notEmpty',
80 'required' => true,
81 'message' => 'Please enter database host IP or URL for your B3 server',
82 ),
83 'dbuser' => array(
84 'rule' => 'notEmpty',
85 'required' => true,
86 'message' => 'Please your B3 database user name',
87 ),
88 'dbname' => array(
89 'rule' => 'notEmpty',
90 'required' => true,
91 'message' => 'Please your B3 database name',
92 ),
93 );
94
95
96
97 98 99 100 101 102
103 public function getB3ServerData($user, $request) {
104 $conditions = array();
105
106
107 $adminGroups = array(1, 2);
108 if (@!in_array($user['Group']['id'], $adminGroups)) {
109 $conditions = array(
110 'active' => true
111 );
112 }
113
114 115 116 117
118
119 if (!preg_match("/admin_/", $request->params['action'])) {
120 if (Configure::read('server.subdomain') != 'www' && Configure::read('globals.advanced.subDomains')) {
121 $conditions['OR'] = array('ServerGroup.name' => array(Configure::read('server.subdomain'), 'all'));
122 }
123 }
124
125 $servers = $this->find('all', array(
126 'conditions' => $conditions,
127 )
128 );
129
130
131 foreach ($servers as $server) {
132 foreach ($server as $option) {
133
134 foreach ($server['Server'] as $k => $v) {
135 Configure::write('servers.' . $server['Server']['id'] . '.' . $k, $v);
136 }
137 }
138 }
139
140
141 $firstServer = $this->find('first', array(
142 'conditions' => $conditions,
143 'order' => array('Server.id' => 'asc'
144 )
145 ));
146 Configure::write('first_server_id', $firstServer['Server']['id']);
147 }
148
149
150
151 152 153 154 155 156
157 public function serverName($serverID = null) {
158 $serverName = $this->read('servername_a', $serverID);
159 $serverName = $serverName['Server']['servername_a'];
160
161 if ($serverName == '') {
162 $serverName = $this->read('servername', $serverID);
163 $serverName = $serverName['Server']['servername'];
164 }
165 return $serverName;
166 }
167
168 }
169