From d70bb6273b7aaf9a20e5652f0430de2c7765629a Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Wed, 30 Dec 2015 09:11:46 +0000 Subject: [PATCH] fhem.pl: Slight authorize/authenticate mods (Forum #46380) git-svn-id: https://svn.fhem.de/fhem/trunk@10305 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/96_allowed.pm | 23 ++++++++++++++++++----- fhem/FHEM/98_JsonList2.pm | 4 ++-- fhem/FHEM/98_XmlList.pm | 9 +++------ fhem/fhem.pl | 10 +++++++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/fhem/FHEM/96_allowed.pm b/fhem/FHEM/96_allowed.pm index fc7b907f1..bb35f84a4 100755 --- a/fhem/FHEM/96_allowed.pm +++ b/fhem/FHEM/96_allowed.pm @@ -59,12 +59,13 @@ allowed_Authorize($$$$) if($type eq "cmd") { return 0 if(!$me->{allowedCommands}); - return ($me->{allowedCommands} =~ m/\b$arg\b/) ? 1 : 2; + # Return 0: allow stacking with other instances, see Forum#46380 + return ($me->{allowedCommands} =~ m/\b$arg\b/) ? 0 : 2; } if($type eq "devicename") { return 0 if(!$me->{allowedDevices}); - return ($me->{allowedDevices} =~ m/\b$arg\b/) ? 1 : 2; + return ($me->{allowedDevices} =~ m/\b$arg\b/) ? 0 : 2; } return 0; @@ -182,7 +183,12 @@ allowed_Attr(@) define <name> allowed <deviceList>

Authorize execution of commands and modification of devices based on the - frontend used.
+ frontend used and/or authenticate users.

+ + If there are multiple instances defined, which are valid for a given + frontend device, then all authorizations must succeed. For authentication + it is sufficient when one of the instances succeeds.

+ Note: this module should work as intended, but no guarantee can be given that there is no way to circumvent it.

Examples: @@ -316,10 +322,17 @@ allowed_Attr(@) Authorisiert das Ausführen von Kommandos oder das Ändern von Geräten abhängig vom verwendeten Frontend.
+ Falls man mehrere allowed Instanzen definiert hat, die für dasselbe + Frontend verantwortlich sind, dann müssen alle Authorisierungen + genehmigt sein, um das Befehl ausführen zu können. Auf der + anderen Seite reicht es, wenn einer der Authentifizierungen positiv + entschieden wird. Die Prüfungen werden in alphabetischer Reihenfolge + der Instanznamen ausgeführt.

+ Achtung: das Modul sollte wie hier beschrieben funktionieren, allerdings können wir keine Garantie geben, daß man sie nicht - überlisten, und Schaden anrichten kann. -
+ überlisten, und Schaden anrichten kann.

+ Beispiele: