[CON-2816] User als inaktiv gekennzeichnet

Alle bestätigten Fehler in CONTENIDO 4.10 (erledigte Fehler werden durch geschlossene Beiträge gekennzeichnet).
Antworten
Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

[CON-2816] User als inaktiv gekennzeichnet

Beitrag von Faar » Do 11. Apr 2019, 08:27

Moin!
Mir fiel auf, dass nach dem großen Upgrade von 4.8 auf 4.10 alle Backend-Benutzer hellgrau dargestellt werden, also als inaktiv.
Das bestätigt sich auch im HTML und CSS das da lautet:

Code: Alles auswählen

<span class="inactiveUser">Redakteur<br>Redakteur</span>

.inactiveUser {
    color: #b3b3b8;
}
Früher konnte man doch einen Benutzer aktiv schalten, oder?
Seit der 4.9.12 zumindest ist da kein "aktiv" Button aber die aktiven Benutzer werden noch im CSS schwarz dargestellt.
Inaktiv kann man Benutzer nur noch schalten, in dem man ein gestriges Datum eingibt.
Das finde ich umständlich.
Wo ist der "aktiv" Button geblieben? :shock:
Den will ich wieder haben. 8)

Edith: Es steht sogar im Benutzerfeld darunter, dass der User aktiv wäre, bowohl er grau dargestellt wird.
Dieser Benutzer ist momentan aktiviert.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von xmurrix » Do 11. Apr 2019, 13:26

Hallo Faar,

die einzige Stelle, die ich auf die Schnelle gefunden habe, in der die CSS Klasse gesetzt wird, ist in der include.rights_menu.php. Da steht zwischen Zeile 115 und 119 folgendes drin:

Code: Alles auswählen

if (($sToday < $cApiUser->get("valid_from") && ($cApiUser->get("valid_from") != '0000-00-00 00:00:00' && $cApiUser->get("valid_from") != '')) || ($sToday > $cApiUser->get("valid_to") && ($cApiUser->get("valid_to") != '0000-00-00 00:00:00') && $cApiUser->get("valid_from") != '')) {
    $mlist->setTitle($iMenu, '<span class="inactiveUser">' . conHtmlSpecialChars($cApiUser->get("username")) . "<br>" . conHtmlSpecialChars($cApiUser->get("realname")) . '</span>');
} else {
    $mlist->setTitle($iMenu, conHtmlSpecialChars($cApiUser->get("username")) . "<br>" . conHtmlSpecialChars($cApiUser->get("realname")));
}
Was stehen denn bei dir in der Usertabelle für Werte in den Spalten "valid_from" und "valid_to" drin?
Falls die aktuelle Zeit kleiner valid_from oder größer valid_to ist, werden die User in der Liste als "deaktiviert" dargestellt.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von Faar » Do 11. Apr 2019, 15:14

xmurrix hat geschrieben:
Do 11. Apr 2019, 13:26
Hallo Faar,
Was stehen denn bei dir in der Usertabelle für Werte in den Spalten "valid_from" und "valid_to" drin?
folgendes:
0000-00-00 0000-00-00

folgende Struktur:
valid_from date Ja NULL
Macht NULL hier Sinn?

in der 4.8 DB steht folgendes:
0000-00-00 0000-00-00

Also gleich wie oben und auch NULL
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von Faar » Do 11. Apr 2019, 15:20

xmurrix hat geschrieben:
Do 11. Apr 2019, 13:26

Code: Alles auswählen

if (($sToday < $cApiUser->get("valid_from") && ($cApiUser->get("valid_from") != '0000-00-00 00:00:00' && $cApiUser->get("valid_from") != '')) || ($sToday > $cApiUser->get("valid_to") && ($cApiUser->get("valid_to") != '0000-00-00 00:00:00') && $cApiUser->get("valid_from") != '')) {
    $mlist->setTitle($iMenu, '<span class="inactiveUser">' . conHtmlSpecialChars($cApiUser->get("username")) . "<br>" . conHtmlSpecialChars($cApiUser->get("realname")) . '</span>');
} else {
    $mlist->setTitle($iMenu, conHtmlSpecialChars($cApiUser->get("username")) . "<br>" . conHtmlSpecialChars($cApiUser->get("realname")));
}
Es gibt in den Tabellen gar kein "valid_from" = '0000-00-00 00:00:00' sondern nur noch 0000-00-00, wie im Post oben beschrieben.
Beide DBs sind Version 5.6.42

Was passiert dann beim Vergleich $sToday < $cApiUser oder bei get("valid_from") != '0000-00-00 00:00:00' ?

Edith: Ja, und falls mal NULL zutrifft, dann dürfte gar kein 0000-00-00 drin stehen.
Ich sehe im Code aber keine Prüfung auf NULL sondern nur get("valid_from") != ''

In der DB ist also das DATE Format eingestellt mit 0000-00-00 aber im Code wird auf DATETIME 0000-00-00 00:00:00 geprüft.
Wäre noch zu klären, ob NULL hier sein darf.
https://www.peterkropff.de/site/mysql/null.htm
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von Oldperl » Do 11. Apr 2019, 17:16

ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von xmurrix » Do 11. Apr 2019, 20:26

folgendes:
0000-00-00 0000-00-00

folgende Struktur:
valid_from date Ja NULL
Macht NULL hier Sinn?

in der 4.8 DB steht folgendes:
0000-00-00 0000-00-00

Also gleich wie oben und auch NULL
Der default-Wert für die Felder "valid_from" und "valid_to" ist NULL, dieser wird in der Prüfung

Code: Alles auswählen

$cApiUser->get("valid_from") != ''
innerhalb der if Bedingung als false interpretiert. Von daher ist es hier egal, ob da NULL steht oder ein Leerstring.

Das Problem hier sind Werte in der Tabelle, die das Format "YYYY-MM-DD" haben und nicht "YYYY-MM-DD HH:MM:SS", deswegen schlägt die Prüfung in der if Bedingung fehl.

In Contenido 4.8 wurden die Einträge damals in der Tabelle "con_phplib_auth_user_md5" im Format "YYYY-MM-DD" gespeichert, das Setup von 4.10 sollte diese Inhalte prüfen und ggf anpassen, also alle Werte in "valid_from" und "valid_to", die das Format "YYYY-MM-DD" haben in "YYYY-MM-DD HH:MM:SS" umwandeln. Ich sehe das als einen Bug, der gefixt werden sollte.

Man kann sich behelfen, indem man die Einträge in der con_user Tabelle manuell korrigiert.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

Beitrag von xmurrix » Do 11. Apr 2019, 20:40

Danke für den Hinweis zum Fehler, das Ticket dazu lautet:
https://issues.contenido.org/browse/CON-2816
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten