Files
librenms-librenms/includes/html/forms/delete-alert-rule.inc.php

46 lines
1.6 KiB
PHP
Raw Normal View History

2014-11-30 17:49:52 +00:00
<?php
/*
* LibreNMS
*
* Copyright (c) 2014 Neil Lathwood <https://github.com/laf/ http://www.lathwood.co.uk/fa>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
2016-04-26 14:39:10 -07:00
header('Content-type: text/plain');
2014-11-30 17:49:52 +00:00
if (!Auth::user()->hasGlobalAdmin()) {
2014-11-30 17:49:52 +00:00
die('ERROR: You need to be admin');
}
Added Alert Transports Mapping (#8660) Hello all, I guess this is the second version of a more fully fleshed out alert contact mapping feature. The old one was GH-8507 Transports to convert: - [x] API - [x] Cisco Spark - [x] Elasticsearch - [x] GitLab - [x] Philips Hue - [x] Jira - [x] Mail - [ ] ~~PagerDuty~~ - Requires a callback so leaving for now - [x] Nagios - [x] IRC - [x] Discord - [x] Rocket.chat - [x] Hipchat - [x] Pushover - [x] Boxcar - [x] Telegram - [x] Pushbullet - [x] VictorOps - [x] OpsGenie - [x] Clickatell - [x] PlaySMS - [x] Canopsis - [x] osTicket - [x] Microsoft Teams - [x] SMSEagle - [x] Syslog - [x] Slack The intention is for this feature to have three different levels to it: 1. Alert rule to an alert contact mapping (where the code is at now) 2. Alert rule to an alert group (made up of alert contacts) mapping 3. Alert contact mapping to different transport configurations. There will be three transport configuration types. 1. Default (the configuration that is held in the configs table) 2. None (no transport configuration - will explain later) 3. Other (a configuration that will be defined in a different able) Take Mail transport for example. It can either be of a "default" or "other" configuration. The hope is that in the future, users can send mail from different mail servers if they wish. However, for ciscospark which requires a room ID and an api-token, I've decided that it has no transport configuration. Most likely, every alert contact will contain a different room-id and an api-token - which is why it has the transport config of "none". For other transports : I am not familiar with them, so hopefully the community can add support for these. I can definitely help! To add support for each transport will require several things: - addition to the UI - addition to forms/alert-contacts.inc.php - modifications to its object class Screenshots ![image](https://user-images.githubusercontent.com/28970851/39594533-2092ce9e-4eca-11e8-9c5d-cd002ece1425.png) ![image](https://user-images.githubusercontent.com/28970851/39594544-276e9856-4eca-11e8-80cc-82789ee0b2b2.png) ![image](https://user-images.githubusercontent.com/28970851/39594553-2fdf528c-4eca-11e8-8a40-4f149e767054.png) I'm not sure if this is the best way to do things, so please let me know if there's a better way to structure the code! Any comments on code/db schema,/UI etc is welcome and encouraged! The UI is heavily based on alert rules (front end is not my strong suit). And parts of the code are based on the code that was written for alert rules. DO NOT DELETE THIS TEXT #### Please note > Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting. - [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/) #### Testers If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-21 13:34:59 -06:00
if (!is_numeric($vars['alert_id'])) {
2015-07-13 20:10:26 +02:00
echo 'ERROR: No alert selected';
2014-11-30 17:49:52 +00:00
exit;
} else {
Renovated Alert Rules (#11115) * Change select order from id to name * added example icmp/snmp down rules given by @kkrumm1 * Renovated Alert Rules * Defaulted sort by name * Moved top buttons and results selector outside of table and aligned them with pull-left and pull-right * Collapsed '#' (ID) into 'Type' and added titles for the icons * Added Devices and Transports columns for each rule * Moved Extra column next to transports * Added icons for Enabled when a user does not have global admin * Changed row_# variable to rule_id_# * Some 'else' cleanup * Added various title tags for more information when hovering * Moved pagination outside of table and align it with pull-left and added a bootgrid style summary pulled-right * Added table & th tags for bootgrid (but didn't turn it on) * code climate, round 1 * code climate, round 2 * add hrefs for device & device group edit * added trailing slash for device-groups/../edit/ * prevent #name conflict with transport modal * add hrefs for transport & transport group edit * use popover consistently * code climate, round 3 * removed unused variables * code climate, round 4 * popover variables * reload after successful delete * more informative feedback * use toastr, not #message, & don't reload * added license header & fail faster if not admin * use (more informative) ajax error message * delete confirmation with alert name in the modal * print each device per line * add href for all devices * refresh status & enabled data-content when/if a rule is turned on/off * use DRY style per @SourceDoctor (& my) preference); codeclimate meh * point devices popover to the right
2020-02-09 20:06:12 -05:00
$alert_name = dbFetchCell('SELECT name FROM alert_rules WHERE id=?', [$vars['alert_id']]);
$alert_msg_prefix = 'Alert rule';
if ($alert_name) {
$alert_msg_prefix .= ' ' . $alert_name;
}
if (!$alert_name) {
$alert_msg_prefix .= ' id ' . $vars['alert_id'];
}
Added Alert Transports Mapping (#8660) Hello all, I guess this is the second version of a more fully fleshed out alert contact mapping feature. The old one was GH-8507 Transports to convert: - [x] API - [x] Cisco Spark - [x] Elasticsearch - [x] GitLab - [x] Philips Hue - [x] Jira - [x] Mail - [ ] ~~PagerDuty~~ - Requires a callback so leaving for now - [x] Nagios - [x] IRC - [x] Discord - [x] Rocket.chat - [x] Hipchat - [x] Pushover - [x] Boxcar - [x] Telegram - [x] Pushbullet - [x] VictorOps - [x] OpsGenie - [x] Clickatell - [x] PlaySMS - [x] Canopsis - [x] osTicket - [x] Microsoft Teams - [x] SMSEagle - [x] Syslog - [x] Slack The intention is for this feature to have three different levels to it: 1. Alert rule to an alert contact mapping (where the code is at now) 2. Alert rule to an alert group (made up of alert contacts) mapping 3. Alert contact mapping to different transport configurations. There will be three transport configuration types. 1. Default (the configuration that is held in the configs table) 2. None (no transport configuration - will explain later) 3. Other (a configuration that will be defined in a different able) Take Mail transport for example. It can either be of a "default" or "other" configuration. The hope is that in the future, users can send mail from different mail servers if they wish. However, for ciscospark which requires a room ID and an api-token, I've decided that it has no transport configuration. Most likely, every alert contact will contain a different room-id and an api-token - which is why it has the transport config of "none". For other transports : I am not familiar with them, so hopefully the community can add support for these. I can definitely help! To add support for each transport will require several things: - addition to the UI - addition to forms/alert-contacts.inc.php - modifications to its object class Screenshots ![image](https://user-images.githubusercontent.com/28970851/39594533-2092ce9e-4eca-11e8-9c5d-cd002ece1425.png) ![image](https://user-images.githubusercontent.com/28970851/39594544-276e9856-4eca-11e8-80cc-82789ee0b2b2.png) ![image](https://user-images.githubusercontent.com/28970851/39594553-2fdf528c-4eca-11e8-8a40-4f149e767054.png) I'm not sure if this is the best way to do things, so please let me know if there's a better way to structure the code! Any comments on code/db schema,/UI etc is welcome and encouraged! The UI is heavily based on alert rules (front end is not my strong suit). And parts of the code are based on the code that was written for alert rules. DO NOT DELETE THIS TEXT #### Please note > Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting. - [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/) #### Testers If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-21 13:34:59 -06:00
if (dbDelete('alert_rules', '`id` = ?', array($vars['alert_id']))) {
dbDelete('alert_device_map', 'rule_id=?', [$vars['alert_id']]);
dbDelete('alert_group_map', 'rule_id=?', [$vars['alert_id']]);
dbDelete('alert_location_map', 'rule_id=?', [$vars['alert_id']]);
Added Alert Transports Mapping (#8660) Hello all, I guess this is the second version of a more fully fleshed out alert contact mapping feature. The old one was GH-8507 Transports to convert: - [x] API - [x] Cisco Spark - [x] Elasticsearch - [x] GitLab - [x] Philips Hue - [x] Jira - [x] Mail - [ ] ~~PagerDuty~~ - Requires a callback so leaving for now - [x] Nagios - [x] IRC - [x] Discord - [x] Rocket.chat - [x] Hipchat - [x] Pushover - [x] Boxcar - [x] Telegram - [x] Pushbullet - [x] VictorOps - [x] OpsGenie - [x] Clickatell - [x] PlaySMS - [x] Canopsis - [x] osTicket - [x] Microsoft Teams - [x] SMSEagle - [x] Syslog - [x] Slack The intention is for this feature to have three different levels to it: 1. Alert rule to an alert contact mapping (where the code is at now) 2. Alert rule to an alert group (made up of alert contacts) mapping 3. Alert contact mapping to different transport configurations. There will be three transport configuration types. 1. Default (the configuration that is held in the configs table) 2. None (no transport configuration - will explain later) 3. Other (a configuration that will be defined in a different able) Take Mail transport for example. It can either be of a "default" or "other" configuration. The hope is that in the future, users can send mail from different mail servers if they wish. However, for ciscospark which requires a room ID and an api-token, I've decided that it has no transport configuration. Most likely, every alert contact will contain a different room-id and an api-token - which is why it has the transport config of "none". For other transports : I am not familiar with them, so hopefully the community can add support for these. I can definitely help! To add support for each transport will require several things: - addition to the UI - addition to forms/alert-contacts.inc.php - modifications to its object class Screenshots ![image](https://user-images.githubusercontent.com/28970851/39594533-2092ce9e-4eca-11e8-9c5d-cd002ece1425.png) ![image](https://user-images.githubusercontent.com/28970851/39594544-276e9856-4eca-11e8-80cc-82789ee0b2b2.png) ![image](https://user-images.githubusercontent.com/28970851/39594553-2fdf528c-4eca-11e8-8a40-4f149e767054.png) I'm not sure if this is the best way to do things, so please let me know if there's a better way to structure the code! Any comments on code/db schema,/UI etc is welcome and encouraged! The UI is heavily based on alert rules (front end is not my strong suit). And parts of the code are based on the code that was written for alert rules. DO NOT DELETE THIS TEXT #### Please note > Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting. - [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/) #### Testers If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-21 13:34:59 -06:00
dbDelete('alert_transport_map', 'rule_id=?', [$vars['alert_id']]);
dbDelete('alert_template_map', 'alert_rule_id=?', [$vars['alert_id']]);
Renovated Alert Rules (#11115) * Change select order from id to name * added example icmp/snmp down rules given by @kkrumm1 * Renovated Alert Rules * Defaulted sort by name * Moved top buttons and results selector outside of table and aligned them with pull-left and pull-right * Collapsed '#' (ID) into 'Type' and added titles for the icons * Added Devices and Transports columns for each rule * Moved Extra column next to transports * Added icons for Enabled when a user does not have global admin * Changed row_# variable to rule_id_# * Some 'else' cleanup * Added various title tags for more information when hovering * Moved pagination outside of table and align it with pull-left and added a bootgrid style summary pulled-right * Added table & th tags for bootgrid (but didn't turn it on) * code climate, round 1 * code climate, round 2 * add hrefs for device & device group edit * added trailing slash for device-groups/../edit/ * prevent #name conflict with transport modal * add hrefs for transport & transport group edit * use popover consistently * code climate, round 3 * removed unused variables * code climate, round 4 * popover variables * reload after successful delete * more informative feedback * use toastr, not #message, & don't reload * added license header & fail faster if not admin * use (more informative) ajax error message * delete confirmation with alert name in the modal * print each device per line * add href for all devices * refresh status & enabled data-content when/if a rule is turned on/off * use DRY style per @SourceDoctor (& my) preference); codeclimate meh * point devices popover to the right
2020-02-09 20:06:12 -05:00
echo $alert_msg_prefix . ' has been deleted.';
2015-07-13 20:10:26 +02:00
exit;
} else {
Renovated Alert Rules (#11115) * Change select order from id to name * added example icmp/snmp down rules given by @kkrumm1 * Renovated Alert Rules * Defaulted sort by name * Moved top buttons and results selector outside of table and aligned them with pull-left and pull-right * Collapsed '#' (ID) into 'Type' and added titles for the icons * Added Devices and Transports columns for each rule * Moved Extra column next to transports * Added icons for Enabled when a user does not have global admin * Changed row_# variable to rule_id_# * Some 'else' cleanup * Added various title tags for more information when hovering * Moved pagination outside of table and align it with pull-left and added a bootgrid style summary pulled-right * Added table & th tags for bootgrid (but didn't turn it on) * code climate, round 1 * code climate, round 2 * add hrefs for device & device group edit * added trailing slash for device-groups/../edit/ * prevent #name conflict with transport modal * add hrefs for transport & transport group edit * use popover consistently * code climate, round 3 * removed unused variables * code climate, round 4 * popover variables * reload after successful delete * more informative feedback * use toastr, not #message, & don't reload * added license header & fail faster if not admin * use (more informative) ajax error message * delete confirmation with alert name in the modal * print each device per line * add href for all devices * refresh status & enabled data-content when/if a rule is turned on/off * use DRY style per @SourceDoctor (& my) preference); codeclimate meh * point devices popover to the right
2020-02-09 20:06:12 -05:00
echo 'ERROR: ' . $alert_msg_prefix . ' has not been deleted.';
2015-07-13 20:10:26 +02:00
exit;
}
}