1 / 9
Aug 2018

Hallo alle, die aktuelle Groupware 17.1.003 (heute, 9.8.2018 nochmal ein apt-get laufen lassen) hat einen Fehler, der zwar kompliziert zu reproduzieren, dafür aber umso verwirrender ist. Hier die “Anleitung”, um ihn nachzustellen:

  1. Individuellen Administrator anlegen und damit einloggen
  2. Mit dem neuen Administrator das Adressbuch aufrufen, so dass sich der Tab “Adressbuch” öffnet. Browser ohne weitere Aktion schließen.
  3. Mit dem “alten” Administrator einloggen und dem neuen Administrator die Rechte für die Ausführung des Adressbuch entziehen.
  4. Wieder mit dem “neuen” Administrator einlogggen und die Benutzerkonten aufrufen.
  5. Fehler: Beim Aufrufen der Benutzerdetails oder aber bei “Hinzufügen” erscheint:
    CreateObject() file /usr/share/egroupware/api/inc/class…inc.php not found!

Es scheint, als ob der die Anwendung irgendwie immer noch versucht aufzurufen, obwohl die Nutzerrechte entzogen wurden, kann das sein? Nachdem der “neue” Admin die Rechte an der Ausführung von Adressbuch wieder hatte, konnte er auch wieder Benutzer anlegen oder ändern.

Grüße,
Sebastian

  • created

    Aug '18
  • last reply

    Aug '19
  • 8

    replies

  • 2.1k

    views

  • 5

    users

  • 1

    link

Hallo Sebastian.

Der “neue” Admin wird vermutlich noch eine gültige Sitzung haben.
Bitte lösche vor dem Anmelden (Schritt 4) die Cookies zu der EGw in deinem Browser.
Bzw/alternativ: Verwende einen anderen Browser oder ein privates Fenster (FF).
Was passiert dann?

Aber selbst wenn es so ist. Wann tritt diese Situation schon auf? Eigentlich nie, meine ich.

Gruß
Stefan

Ist 5. aus der PHP Error.log? Ein Benutzer bekommt ja auch einen Adresseintrag, wenn den “Admin 2” die rechte darauf Fehlen, kann im Code das “CreateObject” diese Objekt auch nicht ausführen. Wobei das “CreateObject” im Code in den neuen Versionen sowieso nicht mehr Benutzt wird. Aufschluss könnte mehr Inhalt aus der PHP error.log liefern.

Gruß
Stefan 2 :wink:

Nein, der Fehler steht als Meldung im Browser. Die vollständige Meldung:


An error happened
CreateObject() file /usr/share/egroupware/api/inc/class..inc.php not found!

Click here to resume your eGroupWare Session.

Der Eintrag im error.log (anonymisiert/formatiert)


    [Mon Aug 13 11:44:27.271925 2018] [:error] [pid 21898] [client ipaddress:49527]
An error happened (EGroupware\\Api\\Exception\\AssertionFailed):
CreateObject() file /usr/share/egroupware/api/inc/class..inc.php not found!,
referer: http ://groupware.************/egroupware/index.php?cd=yes

    [Mon Aug 13 11:44:27.271996 2018] [:error] [pid 21898] [client ipaddress:49527] #0
/usr/share/egroupware/index.php(151): CreateObject('api.'),
referer: http ://groupware.************/egroupware/index.php?cd=yes

    [Mon Aug 13 11:44:27.272021 2018] [:error] [pid 21898] [client ipaddress:49527] #1
{main}, referer: http ://groupware.************/egroupware/index.php?cd=yes

    [Mon Aug 13 11:44:27.272049 2018] [:error] [pid 21898] [client ipaddress:49527] # 
Istance=default, User=adminneu,
Request=GET http ://groupware.************/egroupware/index.php?account_id=55,
User-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15
(KHTML, like Gecko) Version/11.1.2 Safari/605.1.15,
referer: http ://groupware.************/egroupware/index.php?cd=yes

Der Fehler tauchte reproduzierbar in mehreren Browsern und auf mehreren Rechnern auf. Sobald der “neue Admin” oder “Admin2” die Rechte für das Adressbuch zurückbekommen hatte, funktionierte wieder alles.

Beste Grüße, Sebastian

Administratoren brauchen zwingend auch Rechte zum Ausführen des Adressbuchs!

Das ist kein Fehler, sondern einfach die Art wie wir die Administration von Benutzerkonten implementiert haben.

Ralf

12 months later

Leider habe auch ich beim Admin-Account das Adressbuch deaktiviert. Da ich nur diesen einen Admin-Account habe, habe ich nun keine Möglichkeit mehr, Benutzer zu ändern. Wie komme ich aus dieser Nummer jetzt wieder raus?

Beste Grüße
Jürgen

Folgendes SQL auf der Datenbank der EGroupware ausführen:

INSERT INTO egw_acl (acl_appname,acl_location,acl_account,acl_rights) VALUES ('addressbook','run',-4,1)

Wobei (-)4 die account_id Deiner Admins Gruppen sein sollte.
Danach musst Du Dich neu anmelden.

Ralf

Meine Struktur der egw_acl sieht wohl noch/schon etwas anders aus, daher habe ich das SQL-Statement wie folgt ausgeführt:

INSERT INTO egw_acl (acl_appname,acl_location,acl_account,acl_rights) 
SELECT 'addressbook','run', -account_id, 1 
FROM egw_accounts 
WHERE account_lid = 'Admins' AND account_type = 'g';

Danach konnte ich wieder die Benutzer bearbeiten.

Vielen Dank für die schnelle Hilfe und schönes Wochenende

Jürgen

Sorry, hatte es aus dem Kopf geschrieben, die Spalten heißen acl_account und acl_rights.

Habe es jetzt auch bei mir geändert, falls nochmal jemand darüber stolpert …

Ralf