diff --git a/src/lang/bg_BG.lang.php b/src/lang/bg_BG.lang.php index 29269a2b..21c4d2f8 100644 --- a/src/lang/bg_BG.lang.php +++ b/src/lang/bg_BG.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Имейл', 'sms' => 'SMS', 'send_sms' => 'SMS', + 'users' => 'Users', 'delete_title' => 'Изтриване на сървър', 'delete_message' => 'Сигурни ли сте, че искате да изтриете сървър \'%1\'?', 'deleted' => 'Сървъра е изтрит успешно.', diff --git a/src/lang/da_DK.lang.php b/src/lang/da_DK.lang.php index 7e7f71bc..5e84569c 100644 --- a/src/lang/da_DK.lang.php +++ b/src/lang/da_DK.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Send Email', 'sms' => 'SMS', 'send_sms' => 'Send SMS', + 'users' => 'Users', 'delete_title' => 'Slet server', 'delete_message' => 'Er du sikker på du vil slette server \'%1\'?', 'deleted' => 'Server slettet.', diff --git a/src/lang/de_DE.lang.php b/src/lang/de_DE.lang.php index c4ce694a..03ed78c2 100644 --- a/src/lang/de_DE.lang.php +++ b/src/lang/de_DE.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Email', 'sms' => 'SMS', 'send_sms' => 'SMS', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/en_US.lang.php b/src/lang/en_US.lang.php index 31d3a4b2..bce95b89 100644 --- a/src/lang/en_US.lang.php +++ b/src/lang/en_US.lang.php @@ -127,7 +127,8 @@ $sm_lang = array( 'send_email' => 'Send Email', 'sms' => 'SMS', 'send_sms' => 'Send SMS', - 'delete_title' => 'Delete Server', + 'users' => 'Users', + 'delete_title' => 'Delete server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', 'updated' => 'Server updated.', diff --git a/src/lang/es_ES.lang.php b/src/lang/es_ES.lang.php index 203e6200..0d313a7b 100644 --- a/src/lang/es_ES.lang.php +++ b/src/lang/es_ES.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Email', 'sms' => 'SMS', 'send_sms' => 'SMS', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/fr_FR.lang.php b/src/lang/fr_FR.lang.php index b8d3ee6b..99c33a3e 100644 --- a/src/lang/fr_FR.lang.php +++ b/src/lang/fr_FR.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Envoyer un email', 'sms' => 'SMS', 'send_sms' => 'Envoyer un SMS', + 'users' => 'Users', 'delete_title' => 'Supprimer un serveur', 'delete_message' => 'Êtes-vous sûr de vouloir supprimer le serveur \'%1\' ?', 'deleted' => 'Serveur supprimé.', diff --git a/src/lang/it_IT.lang.php b/src/lang/it_IT.lang.php index a013fdee..cf5a57b1 100644 --- a/src/lang/it_IT.lang.php +++ b/src/lang/it_IT.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Invia Email', 'sms' => 'SMS', 'send_sms' => 'Invia SMS', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/ko_KR.lang.php b/src/lang/ko_KR.lang.php index e398af47..7f3bada0 100644 --- a/src/lang/ko_KR.lang.php +++ b/src/lang/ko_KR.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => '메일 전송', 'sms' => 'SMS 전송', 'send_sms' => 'SMS 전송', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/nl_NL.lang.php b/src/lang/nl_NL.lang.php index 928fe07a..c9c8c10e 100644 --- a/src/lang/nl_NL.lang.php +++ b/src/lang/nl_NL.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Stuur email', 'sms' => 'SMS', 'send_sms' => 'Stuur SMS', + 'users' => 'Gebruikers', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/pt_BR.lang.php b/src/lang/pt_BR.lang.php index 73f99834..8b069dfe 100644 --- a/src/lang/pt_BR.lang.php +++ b/src/lang/pt_BR.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Enviar Email', 'sms' => 'SMS', 'send_sms' => 'Enviar SMS', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/lang/ru_RU.lang.php b/src/lang/ru_RU.lang.php index 4dd0d6f8..d402b95d 100644 --- a/src/lang/ru_RU.lang.php +++ b/src/lang/ru_RU.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => 'Отправить Email', 'sms' => 'SMS', 'send_sms' => 'Отправить SMS', + 'users' => 'Users', 'delete_title' => 'Удалить сервер', 'delete_message' => 'Вы точно хотите удалить сервер \'%1\'?', 'deleted' => 'Сервер удален.', diff --git a/src/lang/zh_CN.lang.php b/src/lang/zh_CN.lang.php index 26ef90ed..052ddf7c 100644 --- a/src/lang/zh_CN.lang.php +++ b/src/lang/zh_CN.lang.php @@ -127,6 +127,7 @@ $sm_lang = array( 'send_email' => '发送邮件', 'sms' => '短信', 'send_sms' => '发送短信', + 'users' => 'Users', 'delete_title' => 'Delete Server', 'delete_message' => 'Are you sure you want to delete server \'%1\'?', 'deleted' => 'Server deleted.', diff --git a/src/psm/Module/Server/Controller/ServerController.class.php b/src/psm/Module/Server/Controller/ServerController.class.php index 128b7ba0..1fd582c2 100644 --- a/src/psm/Module/Server/Controller/ServerController.class.php +++ b/src/psm/Module/Server/Controller/ServerController.class.php @@ -160,6 +160,8 @@ class ServerController extends AbstractServerController { $tpl_data['url_go_back'] = psm_build_url(array('mod' => 'server')); } + $users = $this->db->select(PSM_DB_PREFIX.'users', null, array('user_id', 'name'), '', 'name'); + switch($this->server_id) { case 0: // insert mode @@ -178,27 +180,37 @@ class ServerController extends AbstractServerController { } $tpl_data['titlemode'] = psm_get_lang('system', 'edit') . ' ' . $edit_server['label']; + $user_idc_selected = $this->getServerUsers($this->server_id); + foreach($users as &$user) { + if(in_array($user['user_id'], $user_idc_selected)) { + $user['edit_checked'] = 'checked="checked"'; + } + } break; } - // attempt to prefill previously posted fields - foreach($edit_server as $key => $value) { - $edit_server[$key] = psm_POST($key, $value); - } + $this->tpl->addTemplateDataRepeat($this->getTemplateId(), 'users', $users); - $tpl_data = array_merge($tpl_data, array( - 'edit_value_label' => $edit_server['label'], - 'edit_value_ip' => $edit_server['ip'], - 'edit_value_port' => $edit_server['port'], - 'edit_value_timeout' => $edit_server['timeout'], - 'default_value_timeout' => PSM_CURL_TIMEOUT, - 'edit_value_pattern' => $edit_server['pattern'], - 'edit_value_warning_threshold' => $edit_server['warning_threshold'], - 'edit_type_selected_' . $edit_server['type'] => 'selected="selected"', - 'edit_active_selected_' . $edit_server['active'] => 'selected="selected"', - 'edit_email_selected_' . $edit_server['email'] => 'selected="selected"', - 'edit_sms_selected_' . $edit_server['sms'] => 'selected="selected"', - )); + if(!empty($edit_server)) { + // attempt to prefill previously posted fields + foreach($edit_server as $key => $value) { + $edit_server[$key] = psm_POST($key, $value); + } + + $tpl_data = array_merge($tpl_data, array( + 'edit_value_label' => $edit_server['label'], + 'edit_value_ip' => $edit_server['ip'], + 'edit_value_port' => $edit_server['port'], + 'edit_value_timeout' => $edit_server['timeout'], + 'default_value_timeout' => PSM_CURL_TIMEOUT, + 'edit_value_pattern' => $edit_server['pattern'], + 'edit_value_warning_threshold' => $edit_server['warning_threshold'], + 'edit_type_selected_' . $edit_server['type'] => 'selected="selected"', + 'edit_active_selected_' . $edit_server['active'] => 'selected="selected"', + 'edit_email_selected_' . $edit_server['email'] => 'selected="selected"', + 'edit_sms_selected_' . $edit_server['sms'] => 'selected="selected"', + )); + } $this->tpl->addTemplateData( $this->getTemplateId(), @@ -264,6 +276,22 @@ class ServerController extends AbstractServerController { $this->addMessage(psm_get_lang('servers', 'inserted'), 'success'); } + // update users + $user_idc = psm_POST('user_id', array()); + $user_idc_save = array(); + + foreach($user_idc as $user_id) { + $user_idc_save[] = array( + 'user_id' => intval($user_id), + 'server_id' => intval($this->server_id), + ); + } + $this->db->delete(PSM_DB_PREFIX.'users_servers', array('server_id' => $this->server_id)); + if(!empty($user_idc_save)) { + // add all new users + $this->db->insertMultiple(PSM_DB_PREFIX.'users_servers', $user_idc_save); + } + $back_to = isset($_GET['back_to']) ? $_GET['back_to'] : 'index'; if($back_to == 'view') { $this->initializeAction('view'); @@ -382,6 +410,7 @@ class ServerController extends AbstractServerController { 'label_send_email' => psm_get_lang('servers', 'send_email'), 'label_sms' => psm_get_lang('servers', 'sms'), 'label_send_sms' => psm_get_lang('servers', 'send_sms'), + 'label_users' => psm_get_lang('servers', 'users'), 'label_warning_threshold' => psm_get_lang('servers', 'warning_threshold'), 'label_warning_threshold_description' => psm_get_lang('servers', 'warning_threshold_description'), 'label_action' => psm_get_lang('system', 'action'), @@ -397,4 +426,22 @@ class ServerController extends AbstractServerController { return parent::createHTMLLabels(); } + + /** + * Get all user ids for a server + * @param int $server_id + * @return array with ids only + */ + protected function getServerUsers($server_id) { + $users = $this->db->select( + PSM_DB_PREFIX.'users_servers', + array('server_id' => $server_id), + array('user_id') + ); + $result = array(); + foreach($users as $user) { + $result[] = $user['user_id']; + } + return $result; + } } diff --git a/src/templates/server/server.tpl.html b/src/templates/server/server.tpl.html index 693dceb1..503e53a7 100644 --- a/src/templates/server/server.tpl.html +++ b/src/templates/server/server.tpl.html @@ -152,6 +152,21 @@ s +
+ +
+ + + + {users} +
+
{label_go_back}