set Kommandos beschränken auf Rückgabewert von "set DEVICE ?"

Begonnen von Loredo, 22 März 2015, 15:23:16

Vorheriges Thema - Nächstes Thema

Loredo

Hi,


wie wäre es, wenn set Befehle nur an die SetFn des Moduls durchgereicht würden, wenn der set-Befehl auch tatsächlich in der Rückgabe von "set DEVICE ?" enthalten ist?


Der Hintergrund ist, dass ich in vielen meiner Module administrative set-Kommandos bereitstelle, die von normalen Nutzern nicht benutzt werden können sollten.
Daher passe ich die ?-Ausgabe dynamisch daran an, ob die FHEMWEB Instanz im allowedCommands Attribut neben set noch den String "set-user" enthalten hat. Ist dies der Fall, werden die administrativen set Kommandos nicht mehr in der ?-Ausgabe aufgeführt.


Nun habe ich festgestellt, dass FHEM die set-Befehle trotzdem durchreicht, obwohl sie in der ?-Ausgabe nicht mehr enthalten sind.


Natürlich könnte ich das nun auch in meinen Modulen abfangen. Ich dachte mir aber eine etwas generellere Lösung wäre auch für andere Modulautoren sinnvoll.
Ich weiß natürlich nicht, ob nicht einige Modulautoren absichtlich in der ?-Ausgabe (undokumentierte?) Befehle nicht aufführen, hier müsste der ein oder andere vielleicht nacharbeiten. Oder es bräuchte eine Definition der Befehle im HASH statt über die ?-Ausgabe.


Bin gespannt über eure Meinungen.




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Ich bin dagegen. Ich meine das ist ein Spezialfall, und sowas darf ein Modul selbst behandeln.
Btw. set-user ist nirgendwo dokumentiert. In fhem.pl gibts sowas aehliches (showInternalValues), allerdings trifft das nicht 100% dein Fall.

Loredo

"set-user" ist noch nicht dokumentiert, weil ich es mir gerade erst ausgedacht habe :-)


Schade, dass du nicht dafür bist. So ein Spezialfall finde ich das gar nicht. Ich denke es gibt viele, die über allowedCommands (und weitere Parameter) eine FHEM Instanz einschränken und die normalen Nutzer nur über diese Instanz zugreifen. Beim HMLAN/HM_CUL Modul z.B. kann jeder Nutzer z.B. einfach so den Pairing-Modus aktivieren, wenn er die URI dazu selbst zusammenbauen kann (oder eben jeden anderen set-Befehl, den er nicht zum schalten benötigt). Bei meinen Modulen ist das Sicherheits-technisch weit weniger kritisch als es bei anderen, weitaus vitaleren Modulen sein könnte.


Naja, bleibt's eben ein Alleingänger für meine Module. Trotzdem schade, hätte auch bei den anderen Modulen gerne mehr Sicherheit gehabt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Ich habe es jetzt in meinen Modulen direkt implementiert und dokumentiert.
Die FHEMWEB Doku habe ich nicht geändert.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER