In einer Funktion füge ich einen Benutzer einer neuen Benutzergruppe hinzu und lösche ihn aus einer anderen:
Code
if(!empty($groupToAdd)) {
$userAction = new UserAction([$user->userID], 'addToGroups', [
'groups' => $groupToAdd,
'deleteOldGroups' => false,
'addDefaultGroups' => false,
]);
$userAction->executeAction();
}
if(!empty($groupToRemove)) {
$userAction = new UserAction([$user->userID], 'removeFromGroups', [
'groups' => $groupToRemove,
]);
$userAction->executeAction();
}
if (MODULE_USER_RANK) {
$action = new UserProfileAction([$user], 'updateUserRank');
$action->executeAction();
}
if (MODULE_USERS_ONLINE) {
$action = new UserProfileAction([$user], 'updateUserOnlineMarking');
$action->executeAction();
}
UserStorageHandler::getInstance()->reset([$user->userID], 'userRank');
UserEditor::resetCache();
Display More
Danach ist der Benutzer in den korrekten Benutzergruppen. Jedoch wird der Benutzerrang nicht aktualisiert. Ich habe nun die Funktion mit dem reset des UserStorageHandler erweitert. So wird der Benutzerrang zwar noch immer nicht beim ersten Aufruf aktualisiert, aber dafür beim zweiten Aufruf.
Daher habe ich etwas die Vermutung das ich hier ggf. einen Cache übersehe?