Andreas & Ralfs Wissensdatenbank

Processwire User per API bearbeiten (Massenlöschen, Rollen zuweisen, etc.)

Processwire PHP    

Problem: Wie ist es möglich dutzende Processwire User mit wenig Klicks zu löschen?

Antwort: Das Standardvorgehen hierbei ist theoretisch, dass man jeden einzelnen User öffnen muss und ihn dann im Reiter "Delete" löschen kann. Da diese Methode aber SEHR umständlich ist für eine größere Anzahl an User gibt es auch eine Methode über die Processwire eigene API Schnittstelle.

Hierzu einfach nur den nachfolgenden Code im "find" Bereich anpassen und dann z.B. über die TRACY Console Feuer frei :-)

Beispiel: Lösche ALLE User mit der Rolle login-register.

$items = $users->find("roles=fachpartner");
foreach($items as $u) { // don't use $user
	$users->delete($u);
}

 

 

Problem: Wie kann man VIELEN User eine neue Rolle zuweisen?

Antwort: Theoretisch ist es auch hier wieder möglich, jeden User zu öffnen und einzeln die Rollen auswählen und speichern. Aber auch hier gibt es wieder die Möglichkeit über die Processwire API Schnittstelle zu gehen.

Auch hier kann der nachfolgende Code im Bereich "find" angepasst werdern und dann über die TRACY Console ausgeführt werden.

Beispiel: Füge bei ALLEN User die Rolle partner hinzu.

$items = $users->find("roles=login-register");
foreach($items as $u) { // don't use $user
    $u->of(false);
	$u->addRole('partner'); // diese Rolle wird hinzugefügt
	$u->save();
}

 

Viel Erfolg damit :-)


Quellen/ weiterführende Links:

https://processwire.com/talk/topic/17060-batch-delete-users/


Schreibe uns einen Kommentar


Vorheriger Beitrag
Nextcloud - Config variablen

Nächster Beitrag
Raspberry Pi - Modell über Konsole auslesen

Wissensdatenbank