Added enable/disable telegram,pushover

This commit is contained in:
larsec 2021-06-11 22:13:46 +02:00
parent 2eb190e07e
commit 715cc5c20d
9 changed files with 44 additions and 2 deletions

View File

@ -112,6 +112,7 @@ $sm_lang = array(
servers that have been assigned to them.',
'mobile' => 'Mobile',
'email' => 'Email',
'pushover_active' => 'Activate Pushover?',
'pushover' => 'Pushover',
'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See <a href="https://pushover.net/" target="_blank">their website</a> for more info.',
'pushover_key' => 'Pushover Key',

View File

@ -97,10 +97,12 @@ $sm_lang = array(
'pushover_description' => 'Pushover är en tjänst som skickar meddelande i realtid. Se <a
href="https://pushover.net/" target="_blank">deras webbsida</a> för mer
information.',
'pushover_active' => 'Aktivera Pushover',
'pushover_key' => 'Pushover Key',
'pushover_device' => 'Pushover Device',
'pushover_device_description' => 'Enhetsnman att skicka meddelande till. Lämna tomt för att skicka till alla
enheter.',
'telegram_active' => 'Aktivera Telegram',
'delete_title' => 'Radera användare',
'delete_message' => 'Är du säker att du vill radera användare \'%1\'?',
'deleted' => 'Användare raderad.',

View File

@ -229,6 +229,7 @@ class ConfigController extends AbstractController
? 'checked="checked"'
: '';
}
foreach ($this->fields as $input_key) {
$tpl_data[$input_key] = (isset($config[$input_key])) ? $config[$input_key] : '';
}

View File

@ -301,10 +301,12 @@ class InstallController extends AbstractController
'email' => psm_POST('email', ''),
'mobile' => '',
'level' => PSM_USER_ADMIN,
'pushover_active' => '1',
'pushover_key' => '',
'pushover_device' => '',
'webhook_url' => '',
'webhook_json' => '',
'telegram_active' => '1',
'telegram_id' => '',
'discord' => '',
'jabber' => ''

View File

@ -41,6 +41,9 @@ class ProfileController extends AbstractController
protected $profile_fields =
array('name', 'user_name', 'email', 'mobile', 'pushover_key', 'pushover_device', 'discord', 'webhook_url', 'webhook_json', 'telegram_id', 'jabber');
protected $checkboxes =
array('pushover_active', 'telegram_active');
public function __construct(Database $db, \Twig_Environment $twig)
{
parent::__construct($db, $twig);
@ -85,6 +88,7 @@ class ProfileController extends AbstractController
'label_webhook_json' => psm_get_lang('users', 'webhook_json'),
'label_webhook_json_description' => psm_get_lang('users', 'webhook_json_description'),
'label_pushover' => psm_get_lang('users', 'pushover'),
'label_pushover_active' => psm_get_lang('users', 'pushover_active'),
'label_pushover_description' => psm_get_lang('users', 'pushover_description'),
'label_pushover_key' => psm_get_lang('users', 'pushover_key'),
'label_pushover_device' => psm_get_lang('users', 'pushover_device'),
@ -94,6 +98,7 @@ class ProfileController extends AbstractController
'label_discord_description' => psm_get_lang('users', 'discord_description'),
'label_telegram' => psm_get_lang('users', 'telegram'),
'label_telegram_active' => psm_get_lang('users', 'telegram_active'),
'label_telegram_description' => psm_get_lang('users', 'telegram_description'),
'label_telegram_chat_id' => psm_get_lang('users', 'telegram_chat_id'),
'label_telegram_chat_id_description' => psm_get_lang('users', 'telegram_chat_id_description'),
@ -111,9 +116,19 @@ class ProfileController extends AbstractController
'level' => psm_get_lang('users', 'level_' . $user->level),
'placeholder_password' => psm_get_lang('users', 'password_leave_blank'),
);
foreach ($this->profile_fields as $field) {
$tpl_data[$field] = (isset($user->$field)) ? $user->$field : '';
}
foreach ($this->checkboxes as $input_key) {
$tpl_data[$input_key . '_checked'] =
(isset($user->$input_key) && (int) $user->$input_key == 1)
? 'checked="checked"'
: '';
}
return $this->twig->render('module/user/profile.tpl.html', $tpl_data);
}
@ -160,6 +175,10 @@ class ProfileController extends AbstractController
unset($clean['password']);
unset($clean['password_repeat']);
foreach ($this->checkboxes as $input_key) {
$clean[$input_key] = (isset($_POST[$input_key])) ? '1' : '0';
}
$this->db->save(PSM_DB_PREFIX . 'users', $clean, array('user_id' => $this->getUser()->getUserId()));
$this->container->get('event')->dispatch(
\psm\Module\User\UserEvents::USER_EDIT,

View File

@ -50,6 +50,8 @@ class UserController extends AbstractController
'index', 'edit', 'delete', 'save',
), 'index');
$this->twig->addGlobal('subtitle', psm_get_lang('menu', 'user'));
}
public function run($action = null)
@ -161,13 +163,16 @@ class UserController extends AbstractController
'discord',
'webhook_url',
'webhook_json',
'pushover_active',
'pushover_key',
'pushover_device',
'telegram_active',
'telegram_id',
'jabber',
'email'
);
if ($user_id == 0) {
// insert mode
$title = psm_get_lang('system', 'insert');

View File

@ -219,10 +219,12 @@ class Installer
`name` varchar(255) NOT NULL,
`mobile` varchar(15) NOT NULL,
`discord` varchar(255) NOT NULL,
`pushover_active` varchar(1) NULL,
`pushover_key` varchar(255) NOT NULL,
`pushover_device` varchar(255) NOT NULL,
`webhook_url` varchar(255) NOT NULL,
`webhook_json` varchar(255) NOT NULL DEFAULT '{\"text\":\"servermon: #message\"}',
`telegram_active` varchar(1) NULL,
`telegram_id` varchar(255) NOT NULL ,
`jabber` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,

View File

@ -542,6 +542,9 @@ class StatusNotifier
if (trim($user['pushover_key']) == '') {
unset($users[$k]);
}
if (!isset($user['pushover_active']) || $user['pushover_active'] != '1') {
unset($users[$k]);
}
}
// Validation
@ -692,6 +695,9 @@ class StatusNotifier
if (trim($user['telegram_id']) == '') {
unset($users[$k]);
}
if (!isset($user['telegram_active']) || $user['telegram_active'] != '1') {
unset($users[$k]);
}
}
// Validation
@ -781,7 +787,7 @@ class StatusNotifier
$users = $this->db->query('
SELECT `u`.`user_id`, `u`.`name`,`u`.`email`, `u`.`mobile`, `u`.`pushover_key`, `u`.`discord`, `u`.`webhook_url`,`u`.`webhook_json`,
`u`.`pushover_device`, `u`.`telegram_id`,
`u`.`jabber`
`u`.`jabber`, `u`.`telegram_active`, `u`.`pushover_active`
FROM `' . PSM_DB_PREFIX . 'users` AS `u`
JOIN `' . PSM_DB_PREFIX . "users_servers` AS `us` ON (
`us`.`user_id`=`u`.`user_id`

View File

@ -23,6 +23,8 @@
<fieldset>
<legend>{{ label_pushover }}</legend>
<p>{{ label_pushover_description|raw }}</p>
<!-- pushover active -->
{{ macro.input_checkbox("pushover_active", "pushover_active", label_pushover_active, pushover_active_checked) }}
<!-- pushover key -->
{{ macro.input_field("text", "pushover_key", null, "pushover_key", label_pushover_key, pushover_key, label_pushover_key, "255", "pushover_key_help", label_pushover_key_description) }}
<!-- pushover device -->
@ -32,6 +34,8 @@
<fieldset>
<legend>{{ label_telegram }}</legend>
<p>{{ label_telegram_description|raw }}</p>
<!-- pushover active -->
{{ macro.input_checkbox("telegram_active", "telegram_active", label_telegram_active, telegram_active_checked) }}
<!-- telegram id -->
<div class="form-group">
<a class="btn btn-primary mb-2" href="{{ telegram_get_chat_id_url }}">{{ label_telegram_get_chat_id }}</a>