Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
keine Aktualisierung der Benutzernamen Darstellung
#1
(Ich komme aus dem RPG Bereich - weswegen ich ungerne darüber diskutieren würde, ob die Funktion Sinn macht. Für uns schon Smile)

Guten Abend,

ich habe ein Plugin geschrieben, welches die Option bietet Accounts "automatisch" anzunehmen - sprich die Benutzergruppen zu ändern ohne ins ACP zu müssen. 
Dies passiert über ein Formular im Showthread mit einem action auf der misc.php. Es wird die Spalte "usergroup" und "additionalgroups" entsprechend geupdatet. Auch die "displaygroup" wird nochmal auf 0 gesetzt. Das funktioniert auch wunderbar.

Jetzt ist nur aufgefallen, dass nicht über immer/überall die Darstellung entsprechend übernommen wird. Ein Beispiel, klassisch ist die Admingruppe in MyBB grün. Nachdem updaten wird mir der entsprechende Account im Postbit grün angezeigt. In der Mitgliederliste in der Gruppendarstellung von der alten Benutzergruppe. Im Profil wieder grün.
Wenn ich mich mit einem anderem Account einlogge ist der geupdatete Account im Profil zB auch noch in der Darstellung von der alten Benutzergruppe.
Erst wenn ich im ACP (irgendein) Account speichere oder zB ein Post abschicke scheint alles normal zu sein.

Ich dachte, es liegt vielleicht an einem Cache. Also habe ich nach einem automatischen Annehmen einmal alle Caches im ACP aktualisiert. Das Problem blieb dennoch.

Es gibt noch zwei andere Plugins in unserer Community, die auch so eine Funktion habe und auch diese haben das gleiche Problem.

Vielleicht hat hier jemand ein Denkanstoß für mich, woran das Problem liegen könnte und wie ich es lösen kann.

Liebe Grüße und schönen Abend Big Grin
Zitieren
#2
(16.06.2025, 20:51)little.evil.genius schrieb: Wenn ich mich mit einem anderem Account einlogge ist der geupdatete Account im Profil zB auch noch in der Darstellung von der alten Benutzergruppe.

Wenn es hier mit unterschiedlichen Accounts ungleiche Probleme gibt, kann es nicht am Cache liegen, sondern vllt an Cookies.
So konkret weiß ich aber auch gerade nicht, in welche Richtung ich da denken soll.

Diese Plugins, von denen du sprichst, kennt ja hier wohl kaum einer...
Du könntes ja mal einen einfachen PHP-Script schreiben, der nichts weiter tut, als die User von Gruppe X in Gruppe Y zu verschieben und dann nochmal testen.  Huh
Zitieren
#3
Huhu Schnapsnase, 

Danke für die Antwort Big Grin

An Cookies dachte ich auch schon, aber da war ich mir auch unsicher.

Ich hab einfach mal die drei Plugins mitgebracht/verlinkt:
Bewerbungs-Manager (das ist von mir)
Steckbriefe im UCP (Zeile 3843 bis 3912 ist das automatische WoB - Gruppe updaten)
Bewerberübersicht (Zeile 729 bis 809 ist das automatische WoB - Gruppe updaten)

Nur damit ich dich richtig verstehe, aber tue ich das nicht sogar schon? Also das ist jetzt mal der Codeschnippsel von meinem Plugin. Hier ist in dem  $updated_user Array noch nicht displaygroup => 0 mit dabei. Die Datei habe ich noch auf dem Rechner, weil ich das Problem erst lösen wollte.

PHP-Code:
$tid $mybb->get_input('tid');
            $thread get_thread($tid);
            $uid $thread['uid'];
            $user get_user($uid);
            $aid $mybb->get_input('aid');

            // Benutzergruppe updaten
            // Determine the usergroup stuff
            if(!empty($mybb->get_input('additionalgroups'MyBB::INPUT_ARRAY)) && is_array($mybb->get_input('additionalgroups'MyBB::INPUT_ARRAY))) {
                foreach($mybb->get_input('additionalgroups'MyBB::INPUT_ARRAY) as $key => $gid) {
                    if($gid == $mybb->get_input('usergroup')) {
                        unset($mybb->get_input('additionalgroups'MyBB::INPUT_ARRAY)[$key]);
                    }
                }
                $additionalgroups implode(","array_map('intval'$mybb->get_input('additionalgroups'MyBB::INPUT_ARRAY)));
            }
            else {
                $additionalgroups '';    
            
}

            // Set up user handler.
            require_once MYBB_ROOT."inc/datahandlers/user.php";    
            $userhandler 
= new UserDataHandler('update');

            // Set the data for the new user.
            $updated_user = array(
                "uid" => $user['uid'],
                "usergroup" => $mybb->get_input('usergroup'),
                "additionalgroups" => $additionalgroups,    
            
);

            if($user['usergroup'] == && $mybb->get_input('usergroup') != 5) {
                if($user['coppauser'] == 1){
                    $updated_user['coppa_user'] = 0;
                }    
            
}

            // Set the data of the user in the datahandler.
            $userhandler->set_data($updated_user);
            $errors '';

            // Validate the user and get any errors that might have occurred.
            if($userhandler->validate_user()) {
                $user_info $userhandler->update_user();

                if (!empty($mybb->settings['application_manager_wob_date'])) {
                    $wob_field $mybb->settings['application_manager_wob_date'];
                    $updated_wob = array(
                        $wob_field => date('Y-m-d'TIME_NOW)
                    );
                    $db->update_query("users"$updated_wob"uid='".$user['uid']."'");
                }
        
    
                
if($user['usergroup'] == && $mybb->get_input('usergroup') != 5){
                    $cache->update_awaitingactivation();
                }
            }

            // Aus der Bewerbertabelle werfen
            $db->delete_query("application_manager""aid = '".$aid."'");

            redirect("showthread.php?tid=".$tid$lang->application_manager_redirect_wob_groups); 

Vielleicht mach ich hier auch irgendwas falsch? Ich hab mich versucht am ACP zu orientieren.

Also ich bin für jeden Tipp dankbar Big Grin
Zitieren
#4
Ich muss mal eins deiner Plugins selbst testen, in der Hoffnung, dass ich da durchblicke und das Problem irgendwie provozieren kann.  Big Grin
Das wird aber erst nächste Woche. Jetzt mache ich Wochenende.  Wink
Zitieren
#5
Wochenende ist verdient und eilt auch nicht direkt. Deswegen alles mit der Ruhe.
Hab ein schönes Wochenende! Big Grin
Zitieren
#6
@Lara

Ich habe das Problem mal mit einem älteren Plugin ("WoB mit einem Klick") nachgestellt.
Ergebnis:
Sofort nach einem Logout/Login oder wenn man die Seite mit einem anderen Browser aufruft, ist die Darstellung korrekt. Es kann sich also nur um ein Cookie-Problem handeln.
Aktuell bin ich etwas überfragt, wie man das Problem am geschicktesten lösen könnte. Huh
Zitieren
#7
Guten Morgen,

Vielen lieben Dank fürs testen.
Cookies Problem klingt doch schon mal nach einer Richtung. Vielleicht fällt mein eine Lösung ein.
Vielen Dank schon mal!

LG
Zitieren
#8
Merkwürdigerweise entsteht dieses Problem nicht, wenn man die Gruppe im ACP ändert.
Diesbezüglich habe ich gerade eine Denkblockade. Rolleyes
Zitieren