[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: 1451
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: 2744
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

Faar
Beiträge: 1451
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: 1451
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: 4012
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: User als inaktiv gekennzeichnet

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

*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

xmurrix
Beiträge: 2744
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") != ''
innerhalbder 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.

xmurrix
Beiträge: 2744
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

Antworten