ich schreibe gerade an einem kleinen Webserver, der mir Informationen zum aktuell Zustand meiner Nextcloud Box bereit stellen soll. Mir ist bewusst, dass man diese Infos auch über das WebInterface einsehen kann, aber ich möchte mich nicht erst einloggen und durchklicken müssen.
Daher hier meine Frage: Gibt es eine Möglichkeit von außen an die Information zu gelangen, welche User registriert sind, welche aktuell eingeloggt sind, wann sie zuletzt eingeloggt waren und wie viel Prozent des ihnen zugewiesenen Speichers sie belegen?
Mein Programm ist in Java 8 geschrieben und läuft auf dem Raspberry Pi auf dem auch Nextcloud läuft.
Vielen Dank. Ich versuche es aktuell über das occ-Skript mit dem Parameter user:list . Den Login-Status werde ich da allerdings nicht rausbekommen. Mit der Datenbank habe ich mich bisher nicht beschaeftigt. Wäre aber denkbar. Gibt ja entsprechende Treiber für Java. Weist du, ob die Information, on jemand angemeldet ist oder nicht überhaupt in der Datenbank hinterlegt ist?
eine information sollte schon geben aber wo weiß ich gerade leider nicht ^^ aber die daten bank schreibt ja mit wenn einer eingelogt ist (aktuelles datum) zB es geht auch wenn du in einer php (zB. index.php) nach der login abfrage wenn er dir den inhalt anzeigt kann das du da eine php abfrage einbaust und in einer TXT speicherst ^^
Was definitiv geloggt wird, ist der letzte Login. Aber das allein lässt ja noch keine Aussage darüber zu, ob der User aktuell eingeloggt ist.
Die User bekommt man leicht ueber “select uid, displayname from oc_users” heraus. Leider habe ich noch keine Tabelle gefunden, in der der Loginstatus gespeichert ist.
Das wiederum kann ich natürlich auch über die Datenbank machen. Danke für den Hinweis. Ich habe mittlerweile herausgefunden, dass ich wahrscheinlich die oc_users in Verbindung mit der oc_authtoken benoetige.
ich kann leider kein php, deswegen verstehe ich immer nur einen Teil dessen, was du schreibst.
Mein aktueller Ansatz:
select displayname, max(last_activity) as newestentry from oc_users, oc_authtoken where oc_users.uid=oc_authtoken.uid group by displayname order by newestentry desc;
Annahme dabei ist, dass last_activity ein Timestamp ist…
Auf jeden Fall! Hat mich in die richtige Richtung geschubst.
Hier noch mein SQL-Statement: SELECT displayname, MAX(last_activity) FROM oc_users, oc_authtoken WHERE oc_users.uid=oc_authtoken.uid GROUP BY displayname ORDER BY displayname ASC