From 38a78f41446fe8a63b11ab30f27e9f0ee2052a80 Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Mon, 23 Mar 2015 09:59:15 +0000 Subject: [PATCH] RESIDENTS, GUEST, ROOMMATE, ENIGMA2, ONKYO_AVR, PHTV: complete support for set-user strin in FHEMWEB attribute allowedCommands (forum #35338.0) git-svn-id: https://svn.fhem.de/fhem/trunk@8276 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_RESIDENTS.pm | 19 +++++++++++++++++-- fhem/FHEM/20_GUEST.pm | 15 +++++++++++++-- fhem/FHEM/20_ROOMMATE.pm | 15 +++++++++++++-- fhem/FHEM/70_ENIGMA2.pm | 14 ++++++++++++-- fhem/FHEM/70_ONKYO_AVR.pm | 12 ++++++++++-- fhem/FHEM/70_PHTV.pm | 11 +++++++++-- 6 files changed, 74 insertions(+), 12 deletions(-) diff --git a/fhem/FHEM/10_RESIDENTS.pm b/fhem/FHEM/10_RESIDENTS.pm index 23946404d..0c25bd62b 100644 --- a/fhem/FHEM/10_RESIDENTS.pm +++ b/fhem/FHEM/10_RESIDENTS.pm @@ -271,8 +271,15 @@ sub RESIDENTS_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "addroommate" + || lc( $a[1] ) eq "addguest" + || lc( $a[1] ) eq "removeroommate" + || lc( $a[1] ) eq "removeguest" + || lc( $a[1] ) eq "create" ); + } # states my $states = ( @@ -1065,6 +1072,10 @@ sub RESIDENTS_UpdateReadings (@) { create   wakeuptimer   add several pre-configurations provided by RESIDENTS Toolkit. See separate section for details. +

@@ -1306,6 +1317,10 @@ sub RESIDENTS_UpdateReadings (@) { create   wakeuptimer   fügt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion. +


diff --git a/fhem/FHEM/20_GUEST.pm b/fhem/FHEM/20_GUEST.pm index d2d1ad1fe..fd68e9686 100644 --- a/fhem/FHEM/20_GUEST.pm +++ b/fhem/FHEM/20_GUEST.pm @@ -289,8 +289,11 @@ sub GUEST_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "create" ); + } # states my $states = ( @@ -1040,6 +1043,10 @@ sub GUEST_StartInternalTimers($$) { create   wakeuptimer   add several pre-configurations provided by RESIDENTS Toolkit. See separate section in RESIDENTS module commandref for details. +


@@ -1319,6 +1326,10 @@ sub GUEST_StartInternalTimers($$) { create   wakeuptimer   fügt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion in der RESIDENTS Modul Kommandoreferenz. +


diff --git a/fhem/FHEM/20_ROOMMATE.pm b/fhem/FHEM/20_ROOMMATE.pm index b72612ff6..848ce8bcf 100644 --- a/fhem/FHEM/20_ROOMMATE.pm +++ b/fhem/FHEM/20_ROOMMATE.pm @@ -294,8 +294,11 @@ sub ROOMMATE_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "create" ); + } # states my $states = ( @@ -1021,6 +1024,10 @@ sub ROOMMATE_StartInternalTimers($$) { create   wakeuptimer   add several pre-configurations provided by RESIDENTS Toolkit. See separate section in RESIDENTS module commandref for details. +


@@ -1300,6 +1307,10 @@ sub ROOMMATE_StartInternalTimers($$) { create   wakeuptimer   fügt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion in der RESIDENTS Modul Kommandoreferenz. +


diff --git a/fhem/FHEM/70_ENIGMA2.pm b/fhem/FHEM/70_ENIGMA2.pm index 666d7c5a1..f3209144d 100644 --- a/fhem/FHEM/70_ENIGMA2.pm +++ b/fhem/FHEM/70_ENIGMA2.pm @@ -214,8 +214,14 @@ sub ENIGMA2_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "statusrequest" + || lc( $a[1] ) eq "reboot" + || lc( $a[1] ) eq "restartgui" + || lc( $a[1] ) eq "shutdown" ); + } # load channel list if ( @@ -3046,6 +3052,10 @@ sub ENIGMA2_GetRemotecontrolCommand($) { msg yesno,info...   -   allows more complex messages as showText, see commands as listed below +


diff --git a/fhem/FHEM/70_ONKYO_AVR.pm b/fhem/FHEM/70_ONKYO_AVR.pm index 7c19903b3..a8531f070 100755 --- a/fhem/FHEM/70_ONKYO_AVR.pm +++ b/fhem/FHEM/70_ONKYO_AVR.pm @@ -611,8 +611,12 @@ sub ONKYO_AVR_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "statusrequest" + || lc( $a[1] ) eq "remotecontrol" ); + } # Input alias handling if ( defined( $attr{$name}{inputs} ) && $attr{$name}{inputs} ne "" ) { @@ -1728,6 +1732,10 @@ sub ONKYO_AVR_RClayout() { remoteControl   -   sends remote control commands; see remoteControl help +


Get diff --git a/fhem/FHEM/70_PHTV.pm b/fhem/FHEM/70_PHTV.pm index a7b250d70..17d26405f 100644 --- a/fhem/FHEM/70_PHTV.pm +++ b/fhem/FHEM/70_PHTV.pm @@ -285,8 +285,11 @@ sub PHTV_Set($@) { # restrict set commands if there is "set-user" in it my $adminMode = 1; my $FWallowedCommands = AttrVal( $FW_wname, "allowedCommands", 0 ); - $adminMode = 0 - if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ); + if ( $FWallowedCommands && $FWallowedCommands =~ m/\bset-user\b/ ) { + $adminMode = 0; + return "Forbidden command: set " . $a[1] + if ( lc( $a[1] ) eq "statusrequest" ); + } # Input alias handling if ( defined( $attr{$name}{inputs} ) && $attr{$name}{inputs} ne "" ) { @@ -3351,6 +3354,10 @@ sub PHTV_min {
  • record   -   starts recording of current channel
  • +