🔐PWD work #634
This commit is contained in:
@@ -21,8 +21,6 @@
|
|||||||
SCAN_SUBNETS=['192.168.1.0/24 --interface=eth1']
|
SCAN_SUBNETS=['192.168.1.0/24 --interface=eth1']
|
||||||
|
|
||||||
TIMEZONE='Europe/Berlin'
|
TIMEZONE='Europe/Berlin'
|
||||||
PIALERT_WEB_PROTECTION=False
|
|
||||||
PIALERT_WEB_PASSWORD='8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92'
|
|
||||||
DAYS_TO_KEEP_EVENTS=90
|
DAYS_TO_KEEP_EVENTS=90
|
||||||
# Used for generating links in emails. Make sure not to add a trailing slash!
|
# Used for generating links in emails. Make sure not to add a trailing slash!
|
||||||
REPORT_DASHBOARD_URL='http://netalertx'
|
REPORT_DASHBOARD_URL='http://netalertx'
|
||||||
|
|||||||
125
back/pialert-cli
125
back/pialert-cli
@@ -1,125 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
SCRIPT=$(readlink -f $0)
|
|
||||||
SCRIPTPATH=$(dirname $SCRIPT)
|
|
||||||
CONFFILENAME="app.conf"
|
|
||||||
SETTING_NAME_TOGGLE="PIALERT_WEB_PROTECTION"
|
|
||||||
SETTING_NAME_PWD="PIALERT_WEB_PASSWORD"
|
|
||||||
PIA_CONF_FILE=${SCRIPTPATH}'/../config/${CONFFILENAME}'
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
|
|
||||||
help)
|
|
||||||
echo "pialert-cli v0.1 (https://github.com/leiweibau/Pi.Alert)"
|
|
||||||
echo "Usage: pialert-cli <command>"
|
|
||||||
echo ""
|
|
||||||
echo "The is a list of supported commands:"
|
|
||||||
echo ""
|
|
||||||
echo " set_login - Sets the parameter $SETTING_NAME_TOGGLE in the config file to TRUE"
|
|
||||||
echo " - If the parameter is not present, it will be created. Additionally the"
|
|
||||||
echo " default password '123456' is set."
|
|
||||||
echo ""
|
|
||||||
echo " unset_login - Sets the parameter $SETTING_NAME_TOGGLE in the config file to FALSE"
|
|
||||||
echo " - If the parameter is not present, it will be created. Additionally the"
|
|
||||||
echo " default password '123456' is set."
|
|
||||||
echo ""
|
|
||||||
echo " set_password <password> - Sets the new password as a hashed value."
|
|
||||||
echo " - If the $SETTING_NAME_TOGGLE parameter does not exist yet, it will be"
|
|
||||||
echo " created and set to 'True' (login enabled)"
|
|
||||||
echo ""
|
|
||||||
echo " set_autopassword - Sets a new random password as a hashed value and show it plaintext in"
|
|
||||||
echo " the console."
|
|
||||||
echo " - If the $SETTING_NAME_TOGGLE parameter does not exist yet, it will be"
|
|
||||||
echo " created and set to 'True' (login enabled)"
|
|
||||||
echo ""
|
|
||||||
echo ""
|
|
||||||
echo ""
|
|
||||||
;;
|
|
||||||
|
|
||||||
set_login)
|
|
||||||
## Check if $SETTING_NAME_TOGGLE exists
|
|
||||||
CHECK_PROT=$(grep "$SETTING_NAME_TOGGLE" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PROT -eq 0 ]
|
|
||||||
then
|
|
||||||
## Create $SETTING_NAME_TOGGLE and enable it
|
|
||||||
sed -i "/^VENDORS_DB.*/a $SETTING_NAME_TOGGLE = True" $PIA_CONF_FILE
|
|
||||||
sed -i "/^$SETTING_NAME_TOGGLE.*/a $SETTING_NAME_PWD = '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92'" $PIA_CONF_FILE
|
|
||||||
else
|
|
||||||
## Switch $SETTING_NAME_TOGGLE to enable
|
|
||||||
sed -i "/$SETTING_NAME_TOGGLE/c\$SETTING_NAME_TOGGLE = True" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
echo "Login is now enabled"
|
|
||||||
;;
|
|
||||||
|
|
||||||
unset_login)
|
|
||||||
## Check if $SETTING_NAME_TOGGLE exists
|
|
||||||
CHECK_PROT=$(grep "$SETTING_NAME_TOGGLE" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PROT -eq 0 ]
|
|
||||||
then
|
|
||||||
## Create $SETTING_NAME_TOGGLE and disable it
|
|
||||||
sed -i "/^VENDORS_DB.*/a $SETTING_NAME_TOGGLE = False" $PIA_CONF_FILE
|
|
||||||
sed -i "/^$SETTING_NAME_TOGGLE.*/a $SETTING_NAME_PWD = '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92'" $PIA_CONF_FILE
|
|
||||||
else
|
|
||||||
## Switch $SETTING_NAME_TOGGLE to disable
|
|
||||||
sed -i "/$SETTING_NAME_TOGGLE/c\$SETTING_NAME_TOGGLE = False" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
echo "Login is now disabled"
|
|
||||||
;;
|
|
||||||
|
|
||||||
set_password)
|
|
||||||
PIA_PASS=$2
|
|
||||||
## Check if $SETTING_NAME_TOGGLE exists
|
|
||||||
CHECK_PROT=$(grep "$SETTING_NAME_TOGGLE" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PROT -eq 0 ]
|
|
||||||
then
|
|
||||||
## Create $SETTING_NAME_TOGGLE and enable it
|
|
||||||
sed -i "/^VENDORS_DB.*/a $SETTING_NAME_TOGGLE = True" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
## Prepare Hash
|
|
||||||
PIA_PASS_HASH=$(echo -n $PIA_PASS | sha256sum | awk '{print $1}')
|
|
||||||
echo " The hashed password is:"
|
|
||||||
echo " $PIA_PASS_HASH"
|
|
||||||
## Check if the password parameter is set
|
|
||||||
CHECK_PWD=$(grep "$SETTING_NAME_PWD" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PWD -eq 0 ]
|
|
||||||
then
|
|
||||||
sed -i "/^$SETTING_NAME_TOGGLE.*/a $SETTING_NAME_PWD = '$PIA_PASS_HASH'" $PIA_CONF_FILE
|
|
||||||
else
|
|
||||||
sed -i "/$SETTING_NAME_PWD/c\$SETTING_NAME_PWD = '$PIA_PASS_HASH'" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo "The new password is set"
|
|
||||||
;;
|
|
||||||
|
|
||||||
set_autopassword)
|
|
||||||
## Check if $SETTING_NAME_TOGGLE exists
|
|
||||||
CHECK_PROT=$(grep "$SETTING_NAME_TOGGLE" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PROT -eq 0 ]
|
|
||||||
then
|
|
||||||
## Create $SETTING_NAME_TOGGLE and enable it
|
|
||||||
sed -i "/^VENDORS_DB.*/a $SETTING_NAME_TOGGLE = True" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
## Create autopassword
|
|
||||||
PIA_AUTOPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
|
||||||
echo " The password is: $PIA_AUTOPASS"
|
|
||||||
## Prepare Hash
|
|
||||||
PIA_AUTOPASS_HASH=$(echo -n $PIA_AUTOPASS | sha256sum | awk '{print $1}')
|
|
||||||
echo " The hashed password is:"
|
|
||||||
echo " $PIA_AUTOPASS_HASH"
|
|
||||||
## Check if the password parameter is set
|
|
||||||
CHECK_PWD=$(grep "$SETTING_NAME_PWD" $PIA_CONF_FILE | wc -l)
|
|
||||||
if [ $CHECK_PWD -eq 0 ]
|
|
||||||
then
|
|
||||||
## Create password parameter
|
|
||||||
sed -i "/^$SETTING_NAME_TOGGLE.*/a $SETTING_NAME_PWD = '$PIA_AUTOPASS_HASH'" $PIA_CONF_FILE
|
|
||||||
else
|
|
||||||
## Overwrite password parameter
|
|
||||||
sed -i "/$SETTING_NAME_PWD/c\$SETTING_NAME_PWD = '$PIA_AUTOPASS_HASH'" $PIA_CONF_FILE
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo "The new password is set"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "pialert-cli v0.1 (https://github.com/leiweibau/Pi.Alert)"
|
|
||||||
echo "Use \"pialert-cli help\" for a list of supported commands."
|
|
||||||
esac
|
|
||||||
@@ -12,11 +12,11 @@ services:
|
|||||||
# restart: unless-stopped
|
# restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
# - ${APP_DATA_LOCATION}/netalertx_dev/config:/app/config
|
# - ${APP_DATA_LOCATION}/netalertx_dev/config:/app/config
|
||||||
# - ${APP_DATA_LOCATION}/netalertx/config:/app/config
|
- ${APP_DATA_LOCATION}/netalertx/config:/app/config
|
||||||
- ${APP_DATA_LOCATION}/netalertx/config:/home/pi/pialert/config
|
# - ${APP_DATA_LOCATION}/netalertx/config:/home/pi/pialert/config
|
||||||
# - ${APP_DATA_LOCATION}/netalertx_dev/db:/app/db
|
# - ${APP_DATA_LOCATION}/netalertx_dev/db:/app/db
|
||||||
# - ${APP_DATA_LOCATION}/netalertx/db:/app/db
|
- ${APP_DATA_LOCATION}/netalertx/db:/app/db
|
||||||
- ${APP_DATA_LOCATION}/netalertx/db:/home/pi/pialert/db
|
# - ${APP_DATA_LOCATION}/netalertx/db:/home/pi/pialert/db
|
||||||
# (optional) useful for debugging if you have issues setting up the container
|
# (optional) useful for debugging if you have issues setting up the container
|
||||||
# - ${LOGS_LOCATION}:/app/front/log
|
# - ${LOGS_LOCATION}:/app/front/log
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -33,7 +33,7 @@ services:
|
|||||||
- ${DEV_LOCATION}/front/css:/app/front/css
|
- ${DEV_LOCATION}/front/css:/app/front/css
|
||||||
- ${DEV_LOCATION}/front/img:/app/front/img
|
- ${DEV_LOCATION}/front/img:/app/front/img
|
||||||
- ${DEV_LOCATION}/back/update_vendors.sh:/app/back/update_vendors.sh
|
- ${DEV_LOCATION}/back/update_vendors.sh:/app/back/update_vendors.sh
|
||||||
- ${DEV_LOCATION}/front/lib/AdminLTE:/app/front/lib/AdminLTE
|
- ${DEV_LOCATION}/front/lib:/app/front/lib
|
||||||
- ${DEV_LOCATION}/front/js:/app/front/js
|
- ${DEV_LOCATION}/front/js:/app/front/js
|
||||||
- ${DEV_LOCATION}/install/start.debian.sh:/app/install/start.debian.sh
|
- ${DEV_LOCATION}/install/start.debian.sh:/app/install/start.debian.sh
|
||||||
- ${DEV_LOCATION}/install/user-mapping.debian.sh:/app/install/user-mapping.debian.sh
|
- ${DEV_LOCATION}/install/user-mapping.debian.sh:/app/install/user-mapping.debian.sh
|
||||||
|
|||||||
@@ -9,11 +9,8 @@
|
|||||||
| 🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/netalertx) | 📑 [Docker guide](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md) |🆕 [Release notes](https://github.com/jokob-sk/NetAlertX/releases) | 📚 [All Docs](https://github.com/jokob-sk/NetAlertX/tree/main/docs) |
|
| 🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/netalertx) | 📑 [Docker guide](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md) |🆕 [Release notes](https://github.com/jokob-sk/NetAlertX/releases) | 📚 [All Docs](https://github.com/jokob-sk/NetAlertX/tree/main/docs) |
|
||||||
|----------------------|----------------------| ----------------------| ----------------------|
|
|----------------------|----------------------| ----------------------| ----------------------|
|
||||||
|
|
||||||
<a href="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/devices_split.png" target="_blank">
|
<a href="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/GENERAL/github_social_image.jpg" target="_blank">
|
||||||
<img src="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/devices_split.png" width="300px" />
|
<img src="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/GENERAL/github_social_image.jpg" width="1000px" />
|
||||||
</a>
|
|
||||||
<a href="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/network.png" target="_blank">
|
|
||||||
<img src="https://raw.githubusercontent.com/jokob-sk/NetAlertX/main/docs/img/network.png" width="300px" />
|
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
|
|||||||
@@ -33,8 +33,13 @@ In summary:
|
|||||||
4. Update the volume mappings in your `docker-compose.yaml`
|
4. Update the volume mappings in your `docker-compose.yaml`
|
||||||
5. Place the renamed files the above locations.
|
5. Place the renamed files the above locations.
|
||||||
|
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> If you have troubles accessing past backups, config or database files you can copy them into the newly mapped directories, for example by running this command in the container: `cp -r /app/config /home/pi/pialert/config/old_backup_files`. This should create a folder in the `config` directory called `old_backup_files` conatining all the files in that location. Another approach is to map the old location and the new one at the same time to copy things over.
|
||||||
|
|
||||||
Examples follow.
|
Examples follow.
|
||||||
|
|
||||||
|
|
||||||
## Example 1: Mapping folders
|
## Example 1: Mapping folders
|
||||||
|
|
||||||
### Old docker-compose.yml
|
### Old docker-compose.yml
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 334 KiB After Width: | Height: | Size: 292 KiB |
@@ -147,7 +147,6 @@ if ($ENABLED_DARKMODE === True) {
|
|||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><3E></button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><3E></button>
|
||||||
<h4><i class="icon fa <?php echo $login_icon;?>"></i><?php echo $login_headline;?></h4>
|
<h4><i class="icon fa <?php echo $login_icon;?>"></i><?php echo $login_headline;?></h4>
|
||||||
<p><?php echo $login_info;?></p>
|
<p><?php echo $login_info;?></p>
|
||||||
<p><?= lang('Login_Psw_run');?><br><span style="border: solid 1px yellow; padding: 2px;"> /app/back/pialert-cli set_password <?= lang('Login_Psw_new');?></span><br><?= lang('Login_Psw_folder');?></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -165,6 +165,18 @@
|
|||||||
return true; // Return true if no schedules are found
|
return true; // Return true if no schedules are found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Checks if value is already encoded
|
||||||
|
function isSHA256(value) {
|
||||||
|
// Check if the value is a string and has a length of 64 characters
|
||||||
|
if (typeof value === "string" && value.length === 64) {
|
||||||
|
// Check if the value contains only hexadecimal characters
|
||||||
|
return /^[0-9a-fA-F]+$/.test(value);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
front/lib/crypto/crypto-js.min.js
vendored
Executable file
1
front/lib/crypto/crypto-js.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
@@ -328,7 +328,7 @@ function saveSettings()
|
|||||||
$settingValue = $setting[3];
|
$settingValue = $setting[3];
|
||||||
|
|
||||||
if ($group == $settingGroup) {
|
if ($group == $settingGroup) {
|
||||||
if ($settingType == 'text' || $settingType == 'password' || $settingType == 'readonly' || $settingType == 'text.select') {
|
if ($settingType == 'text' || $settingType == 'password' || $settingType == 'password.SHA256' || $settingType == 'readonly' || $settingType == 'text.select') {
|
||||||
$val = encode_single_quotes($settingValue);
|
$val = encode_single_quotes($settingValue);
|
||||||
$txt .= $settingKey . "='" . $val . "'\n";
|
$txt .= $settingKey . "='" . $val . "'\n";
|
||||||
} elseif ($settingType == 'integer' || $settingType == 'integer.select') {
|
} elseif ($settingType == 'integer' || $settingType == 'integer.select') {
|
||||||
|
|||||||
@@ -29,18 +29,18 @@ $config_file_lines = file($config_file);
|
|||||||
$CookieSaveLoginName = "NetAlertX_SaveLogin";
|
$CookieSaveLoginName = "NetAlertX_SaveLogin";
|
||||||
|
|
||||||
// ###################################
|
// ###################################
|
||||||
// ## PIALERT_WEB_PROTECTION FALSE
|
// ## SETPWD_enable_password FALSE
|
||||||
// ###################################
|
// ###################################
|
||||||
|
|
||||||
$config_file_lines_bypass = array_values(preg_grep('/^PIALERT_WEB_PROTECTION.*=/', $config_file_lines));
|
$config_file_lines_bypass = array_values(preg_grep('/^SETPWD_enable_password.*=/', $config_file_lines));
|
||||||
$protection_line = explode("=", $config_file_lines_bypass[0]);
|
$protection_line = explode("=", $config_file_lines_bypass[0]);
|
||||||
$Pia_WebProtection = strtolower(trim($protection_line[1]));
|
$Pia_WebProtection = strtolower(trim($protection_line[1]));
|
||||||
|
|
||||||
// ###################################
|
// ###################################
|
||||||
// ## PIALERT_WEB_PROTECTION TRUE
|
// ## SETPWD_enable_password TRUE
|
||||||
// ###################################
|
// ###################################
|
||||||
|
|
||||||
$config_file_lines = array_values(preg_grep('/^PIALERT_WEB_PASSWORD.*=/', $config_file_lines));
|
$config_file_lines = array_values(preg_grep('/^SETPWD_password.*=/', $config_file_lines));
|
||||||
$password_line = explode("'", $config_file_lines[0]);
|
$password_line = explode("'", $config_file_lines[0]);
|
||||||
$Pia_Password = $password_line[1];
|
$Pia_Password = $password_line[1];
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
| | Yes | PIHOLE | External SQLite DB | 🔍dev scanner | 📚[pihole_scan](/front/plugins/pihole_scan/) |
|
| | Yes | PIHOLE | External SQLite DB | 🔍dev scanner | 📚[pihole_scan](/front/plugins/pihole_scan/) |
|
||||||
| | | PUSHSAFER | Script | 💬 publisher | 📚[_publisher_pushsafer](/front/plugins/_publisher_pushsafer/) |
|
| | | PUSHSAFER | Script | 💬 publisher | 📚[_publisher_pushsafer](/front/plugins/_publisher_pushsafer/) |
|
||||||
| | | PUSHOVER | Script | 💬 publisher | 📚[_pushover_pushsafer](/front/plugins/_publisher_pushover/) |
|
| | | PUSHOVER | Script | 💬 publisher | 📚[_pushover_pushsafer](/front/plugins/_publisher_pushover/) |
|
||||||
| | | SETPWD | Script | ⚙ system | 📚[set_password](/front/plugins/set_password/) |
|
| Yes | | SETPWD | Template | ⚙ system | 📚[set_password](/front/plugins/set_password/) |
|
||||||
| | | SMTP | Script | 💬 publisher | 📚[_publisher_email](/front/plugins/_publisher_email/) |
|
| | | SMTP | Script | 💬 publisher | 📚[_publisher_email](/front/plugins/_publisher_email/) |
|
||||||
| | Yes | SNMPDSC | Script | 🔍dev scanner | 📚[snmp_discovery](/front/plugins/snmp_discovery/) |
|
| | Yes | SNMPDSC | Script | 🔍dev scanner | 📚[snmp_discovery](/front/plugins/snmp_discovery/) |
|
||||||
| | Yes** | UNDIS | Script | ♻ other | 📚[undiscoverables](/front/plugins/undiscoverables/) |
|
| | Yes** | UNDIS | Script | ♻ other | 📚[undiscoverables](/front/plugins/undiscoverables/) |
|
||||||
|
|||||||
@@ -1,48 +1,13 @@
|
|||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
A simple script-based plugin for setting the password.
|
A simple setting-based plugin for setting the password.
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
- Head to **Settings** > **UI password** to adjust the default values.
|
- Head to **Settings** > **Set Password** to adjust the default values.
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
|
|
||||||
- The plugin is executed on the `RUN` type `before_config_save` so it's possible to update the `app.conf` file before the data is loaded into the app.
|
- The default password is <code>123456</code>.
|
||||||
- The executed command is stored in the `CMD` setting: `/app/back/pialert-cli set_password {password}`
|
- When enabled a login dialog is displayed. If facing issues, you can always disable the login by setting <code>SETPWD_enable_password=False</code> in your <code>app.conf</code> file.
|
||||||
- The `{password}` parameter is replaced via the parameter and setting below:
|
- SHA256 hash is used
|
||||||
|
|
||||||
```json
|
|
||||||
...
|
|
||||||
"params" : [
|
|
||||||
{
|
|
||||||
"name" : "password",
|
|
||||||
"type" : "setting",
|
|
||||||
"value" : "SETPWD_password"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
...
|
|
||||||
{
|
|
||||||
"function": "password",
|
|
||||||
"type": "password",
|
|
||||||
"maxLength": 50,
|
|
||||||
"default_value": "123456",
|
|
||||||
"options": [],
|
|
||||||
"localized": ["name", "description"],
|
|
||||||
"name": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "Password"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "The default password is <code>123456</code>. To change the password run <code>/app/back/pialert-cli set_password {password}</code> in the container"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
"unique_prefix": "SETPWD",
|
"unique_prefix": "SETPWD",
|
||||||
"plugin_type": "system",
|
"plugin_type": "system",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"data_source": "script",
|
"data_source": "template",
|
||||||
"show_ui": false,
|
"show_ui": false,
|
||||||
"localized": ["display_name", "description", "icon"],
|
"localized": ["display_name", "description", "icon"],
|
||||||
"display_name": [{
|
"display_name": [{
|
||||||
@@ -42,55 +42,27 @@
|
|||||||
],
|
],
|
||||||
"settings":[
|
"settings":[
|
||||||
{
|
{
|
||||||
"function": "RUN",
|
"function": "enable_password",
|
||||||
"events": [],
|
"type": "boolean",
|
||||||
"type": "text.select",
|
"default_value": false,
|
||||||
"default_value":"disabled",
|
|
||||||
"options": ["disabled", "before_config_save"],
|
|
||||||
"localized": ["name", "description"],
|
|
||||||
"name" :[{
|
|
||||||
"language_code":"en_us",
|
|
||||||
"string" : "When to run"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code":"es_es",
|
|
||||||
"string" : "Cuándo ejecuta"
|
|
||||||
}],
|
|
||||||
"description": [{
|
|
||||||
"language_code":"en_us",
|
|
||||||
"string" : "Set to <code>before_config_save</code> and specify password to reset your pasword in <code>SETPWD_password</code>."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code":"es_es",
|
|
||||||
"string" : "Configure en <code>before_config_save</code> y especifique la contraseña para restablecer su contraseña en <code>SETPWD_password</code>. Puede establecer <code>deshabilitado</code> una vez que se cambia la contraseña."
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"function": "CMD",
|
|
||||||
"type": "readonly",
|
|
||||||
"default_value":"/app/back/pialert-cli set_password {password}",
|
|
||||||
"options": [],
|
"options": [],
|
||||||
"localized": ["name", "description"],
|
"localized": ["name", "description"],
|
||||||
"name" : [{
|
"name": [
|
||||||
"language_code":"en_us",
|
|
||||||
"string" : "Command"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"language_code":"es_es",
|
"language_code": "en_us",
|
||||||
"string" : "Comando"
|
"string": "Enable login"
|
||||||
}],
|
}
|
||||||
"description": [{
|
],
|
||||||
"language_code":"en_us",
|
"description": [
|
||||||
"string" : "Command to run"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"language_code":"es_es",
|
"language_code": "en_us",
|
||||||
"string" : "Comando a ejecutar"
|
"string": "When enabled a login dialog is displayed. If facing issues, you can always disable the login by setting <code>SETPWD_enable_password=False</code> in your <code>app.conf</code> file."
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "password",
|
"function": "password",
|
||||||
"type": "password",
|
"type": "password.SHA256",
|
||||||
"maxLength": 50,
|
"maxLength": 50,
|
||||||
"default_value": "123456",
|
"default_value": "123456",
|
||||||
"options": [],
|
"options": [],
|
||||||
@@ -108,11 +80,7 @@
|
|||||||
"description": [
|
"description": [
|
||||||
{
|
{
|
||||||
"language_code": "en_us",
|
"language_code": "en_us",
|
||||||
"string": "The default password is <code>123456</code>. To change it, you can either use this plugin (follow the instructions in the <code>SETPWD_RUN</code> setting) or run <code>/app/back/pialert-cli set_password {password}</code> in the container."
|
"string": "The default password is <code>123456</code>."
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "es_es",
|
|
||||||
"string": "La contraseña predeterminada es <code>123456</code>. Para cambiar la contraseña, ejecute <code>/app/back/pialert-cli set_password {password}</code> en el contenedor"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
|||||||
<script src="js/settings_utils.js"></script>
|
<script src="js/settings_utils.js"></script>
|
||||||
<script src="js/db_methods.js"></script>
|
<script src="js/db_methods.js"></script>
|
||||||
<script src="js/ui_components.js"></script>
|
<script src="js/ui_components.js"></script>
|
||||||
|
<script src="lib/crypto/crypto-js.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
<div id="settingsPage" class="content-wrapper">
|
<div id="settingsPage" class="content-wrapper">
|
||||||
@@ -412,7 +413,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
|||||||
}
|
}
|
||||||
} else if (setType === 'integer') {
|
} else if (setType === 'integer') {
|
||||||
inputHtml = `<input onChange="settingsChanged()" my-data-type="${setType}" class="form-control" id="${codeName}" type="number" value="${val}"/>`;
|
inputHtml = `<input onChange="settingsChanged()" my-data-type="${setType}" class="form-control" id="${codeName}" type="number" value="${val}"/>`;
|
||||||
} else if (setType === 'password') {
|
} else if (setType.startsWith('password')) {
|
||||||
inputHtml = `<input onChange="settingsChanged()" my-data-type="${setType}" class="form-control input" id="${codeName}" type="password" value="${val}"/>`;
|
inputHtml = `<input onChange="settingsChanged()" my-data-type="${setType}" class="form-control input" id="${codeName}" type="password" value="${val}"/>`;
|
||||||
} else if (setType === 'readonly') {
|
} else if (setType === 'readonly') {
|
||||||
inputHtml = `<input class="form-control input" my-data-type="${setType}" id="${codeName}" value="${val}" readonly/>`;
|
inputHtml = `<input class="form-control input" my-data-type="${setType}" id="${codeName}" value="${val}" readonly/>`;
|
||||||
@@ -687,6 +688,15 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
|||||||
} else if (set['Type'] === 'json') {
|
} else if (set['Type'] === 'json') {
|
||||||
const temps = $('#'+set["Code_Name"]).val();
|
const temps = $('#'+set["Code_Name"]).val();
|
||||||
settingsArray.push([set["Group"], set["Code_Name"], set["Type"], temps]);
|
settingsArray.push([set["Group"], set["Code_Name"], set["Type"], temps]);
|
||||||
|
} else if (set['Type'] === 'password.SHA256') {
|
||||||
|
// save value as SHA256 if value isn't SHA256 already
|
||||||
|
var temps = $('#'+set["Code_Name"]).val();
|
||||||
|
|
||||||
|
if(temps != "" && !isSHA256(temps))
|
||||||
|
{
|
||||||
|
temps = CryptoJS.SHA256(temps).toString(CryptoJS.enc.Hex);
|
||||||
|
}
|
||||||
|
settingsArray.push([set["Group"], set["Code_Name"], set["Type"], temps]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -707,9 +717,9 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
|||||||
// Reloads the current page
|
// Reloads the current page
|
||||||
setTimeout("window.location.reload()", 3000);
|
setTimeout("window.location.reload()", 3000);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ UI_LANG = 'English'
|
|||||||
UI_PRESENCE = ['online', 'offline', 'archived']
|
UI_PRESENCE = ['online', 'offline', 'archived']
|
||||||
UI_MY_DEVICES = ['online', 'offline', 'archived', 'new', 'down']
|
UI_MY_DEVICES = ['online', 'offline', 'archived', 'new', 'down']
|
||||||
UI_NOT_RANDOM_MAC = []
|
UI_NOT_RANDOM_MAC = []
|
||||||
PIALERT_WEB_PROTECTION = False
|
|
||||||
PIALERT_WEB_PASSWORD = '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92'
|
|
||||||
DAYS_TO_KEEP_EVENTS = 90
|
DAYS_TO_KEEP_EVENTS = 90
|
||||||
REPORT_DASHBOARD_URL = 'http://netalertx/'
|
REPORT_DASHBOARD_URL = 'http://netalertx/'
|
||||||
|
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ def get_setting_value(key):
|
|||||||
set_type = setting["Type"] # Setting type
|
set_type = setting["Type"] # Setting type
|
||||||
|
|
||||||
# Handle different types of settings
|
# Handle different types of settings
|
||||||
if set_type in ['text', 'string', 'password', 'readonly', 'text.select']:
|
if set_type in ['text', 'string', 'password', 'password.SHA256', 'readonly', 'text.select']:
|
||||||
value = str(set_value)
|
value = str(set_value)
|
||||||
elif set_type in ['boolean', 'integer.checkbox']:
|
elif set_type in ['boolean', 'integer.checkbox']:
|
||||||
|
|
||||||
|
|||||||
@@ -102,8 +102,6 @@ def importConfigs (db):
|
|||||||
conf.LOG_LEVEL = ccd('LOG_LEVEL', 'verbose' , c_d, 'Log verboseness', 'text.select', "['none', 'minimal', 'verbose', 'debug']", 'General')
|
conf.LOG_LEVEL = ccd('LOG_LEVEL', 'verbose' , c_d, 'Log verboseness', 'text.select', "['none', 'minimal', 'verbose', 'debug']", 'General')
|
||||||
conf.TIMEZONE = ccd('TIMEZONE', 'Europe/Berlin' , c_d, 'Time zone', 'text', '', 'General')
|
conf.TIMEZONE = ccd('TIMEZONE', 'Europe/Berlin' , c_d, 'Time zone', 'text', '', 'General')
|
||||||
conf.PLUGINS_KEEP_HIST = ccd('PLUGINS_KEEP_HIST', 250 , c_d, 'Keep history entries', 'integer', '', 'General')
|
conf.PLUGINS_KEEP_HIST = ccd('PLUGINS_KEEP_HIST', 250 , c_d, 'Keep history entries', 'integer', '', 'General')
|
||||||
conf.PIALERT_WEB_PROTECTION = ccd('PIALERT_WEB_PROTECTION', False , c_d, 'Enable logon', 'boolean', '', 'General')
|
|
||||||
conf.PIALERT_WEB_PASSWORD = ccd('PIALERT_WEB_PASSWORD', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92' , c_d, 'Logon password', 'readonly', '', 'General')
|
|
||||||
conf.REPORT_DASHBOARD_URL = ccd('REPORT_DASHBOARD_URL', 'http://netalertx/' , c_d, 'NetAlertX URL', 'text', '', 'General')
|
conf.REPORT_DASHBOARD_URL = ccd('REPORT_DASHBOARD_URL', 'http://netalertx/' , c_d, 'NetAlertX URL', 'text', '', 'General')
|
||||||
conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', 'text.select', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish' ]", 'General')
|
conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', 'text.select', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish' ]", 'General')
|
||||||
conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', 'text.multiselect', "['online', 'offline', 'archived']", 'General')
|
conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', 'text.multiselect', "['online', 'offline', 'archived']", 'General')
|
||||||
@@ -256,6 +254,8 @@ def read_config_file(filename):
|
|||||||
replacements = {
|
replacements = {
|
||||||
r'\bREPORT_TO\b': 'SMTP_REPORT_TO',
|
r'\bREPORT_TO\b': 'SMTP_REPORT_TO',
|
||||||
r'\bREPORT_FROM\b': 'SMTP_REPORT_FROM',
|
r'\bREPORT_FROM\b': 'SMTP_REPORT_FROM',
|
||||||
|
r'\bPIALERT_WEB_PROTECTION\b': 'SETPWD_enable_password',
|
||||||
|
r'\bPIALERT_WEB_PASSWORD\b': 'SETPWD_password',
|
||||||
r'REPORT_MAIL=True': 'SMTP_RUN=\'on_notification\'',
|
r'REPORT_MAIL=True': 'SMTP_RUN=\'on_notification\'',
|
||||||
r'REPORT_APPRISE=True': 'APPRISE_RUN=\'on_notification\'',
|
r'REPORT_APPRISE=True': 'APPRISE_RUN=\'on_notification\'',
|
||||||
r'REPORT_NTFY=True': 'NTFY_RUN=\'on_notification\'',
|
r'REPORT_NTFY=True': 'NTFY_RUN=\'on_notification\'',
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class plugin_param:
|
|||||||
setVal = inputValue["Value"] # setting value
|
setVal = inputValue["Value"] # setting value
|
||||||
setTyp = inputValue["Type"] # setting type
|
setTyp = inputValue["Type"] # setting type
|
||||||
|
|
||||||
noConversion = ['text', 'string', 'integer', 'boolean', 'password', 'readonly', 'integer.select', 'text.select', 'integer.checkbox' ]
|
noConversion = ['text', 'string', 'integer', 'boolean', 'password', 'password.SHA256', 'readonly', 'integer.select', 'text.select', 'integer.checkbox' ]
|
||||||
arrayConversion = ['text.multiselect', 'list', 'subnets']
|
arrayConversion = ['text.multiselect', 'list', 'subnets']
|
||||||
jsonConversion = ['.template']
|
jsonConversion = ['.template']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user