FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: igami am 14 Mai 2014, 17:56:02

Titel: [gelöst] Logout
Beitrag von: igami am 14 Mai 2014, 17:56:02
habe mir mal Gedanken zum Thema Logout gemacht und brauche nun noch jemand der mir beim Vervollständigen hilft.
Bei uns im Betrieb soll FHEM als Mehrbenutzersystem laufen. Dazu wird pro Raum eine Webinstanz erstellt deren Name und Portnummer die Raumnummer ist. Jedem Benutzer wird eine PIN zugeordnet.

Bsp: für Raum 1.2.050

define 12050 FHEMWEB 12050 global
attr 12050 basicAuth {("nutzer1:1234")||("nutzer2:2345")}
attr 12050 menuEntries logout,/fhem?cmd={logout}

99_myUtils.pm

sub logout{
{fhem ('attr 12050 basicAuth 1')};
{fhem ('define at_logout at +00:00:01 attr 12050 basicAuth {("nutzer1:1234")||("nutzer2:2345")}')};
}

Meine weiteren Überlegungen:
die Logout Funktion mit einem Argument, dem FHEMWEB-Namen zu versehen und dann das basicAuth Attribut auszulesen und neu einzutragen.

EDIT 2014-05-14 18:29:
Bin schon weiter gekommen

sub logout{
my $WEB = shift;
my $basicAuth = AttrVal($WEB,"basicAuth",1);
{fhem ("attr $WEB basicAuth 1")};
{fhem ("define at_logout at +00:00:01 attr $WEB basicAuth $basicAuth")};
}


Sollte soweit alles erfüllen, was ich möchte wenn ich nun

attr 12050 menuEntries logout,/fhem?cmd={logout(%2212050%22)}

setze. I-Tüpfelchen wäre wenn er sich nun noch den Namen der WEB Instanz selber suchen könnte.

Für Anregungen bin ich Dankbar.

Gruß
Igami

PS: ein einfaches http://log:out@ip:port funktioniert leider nicht
Titel: Antw:[gelöst] Logout
Beitrag von: justme1968 am 14 Mai 2014, 18:50:11
noch ein hinweis: wenn du eine web instanz hast die nicht read only ist kannst du zur zeit durch URL manipulation auch devices schalten die du nicht siehst.

weiterhin solltest du über allowed commands nur erlauben was unbedingt nötig ist. also kein list, attr, delete, ...  und set nur wenn die manipulationsmöglichkeit oben kein problem ist.

den patch nur bestimmte oder nur sichtbare devices zu erlauben habe ich noch nicht fertig.

gruss
  andre