Come elencare tutti gli utenti in Drush?


12

Vorrei elencare le informazioni su tutti gli utenti che utilizzano drush.

Esiste user-information, ma mostra informazioni solo sul singolo utente.

ci sono altre soluzioni?

Risposte:


7

Esiste un recente progetto sandbox: Drush User List (di John ) che dovrebbe funzionare con Drupal 6 e 7 (vedi GitHub ).

Uso:

drush user-list

Per altre soluzioni alternative, il seguente comando con la sintassi di sostituzione del processo dovrebbe aiutare:

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users")

Tuttavia, in alcuni casi potrebbe non riuscire (quando gli utenti hanno alcuni caratteri speciali nel loro nome).


5

Come sottolineato da Kenorb, esiste una soluzione alternativa tramite query SQL.

E con una piccola modifica, diventa più robusto per caratteri speciali nei nomi - usando "uid" (numero intero) invece dei nomi utente:

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(uid) FROM users")

PS: confermato solo per Drupal 7.
PPS: mi dispiace per aver aggiunto un'altra risposta, non posso ancora commentare.


5

Per Drupal 8 è possibile eseguire il comando seguente:

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users_field_data")

L'output loke qualcosa di simile al seguente:

 User ID       :  1
 User name     :  admin
 User mail     :  info@example.com
 User roles    :  authenticated
                  administrator
 User status   :  1


0

Siamo spiacenti ... ho scritto questo script per macchine remote Drupal 8 con alias; facilmente adattabile al locale se necessario.

if [ $# -lt 1 ]
then
        echo "Usage : $0 sitealias [all/disabled/enabled] [rolename]"
        echo "Note: this only runs on Drupal 8 schema"
        exit
 fi

 ARG1=$1
 ARG2=${2:-all}
 ARG3=${3:-nothing}

 if [ "$ARG3" != "nothing" ]
 then
    ROLEWHERE='AND user__roles.roles_target_id="'$ARG3'"'
 fi



 case "$ARG2" in
    enabled) 
        WHERECLAUSE='WHERE users_field_data.status="1" '$ROLEWHERE
        ;;
    disabled)
        WHERECLAUSE='WHERE users_field_data.status="0" '$ROLEWHERE
        ;;
    all)
        WHERECLAUSE='WHERE users_field_data.status LIKE "%" '$ROLEWHERE
        ;;
    *)
        WHERECLAUSE=''
        ;;
 esac

 QUERY='SELECT users_field_data.uid,users_field_data.name,users_field_data.mail,from_unixtime(users_field_data.login) AS "lastlogin",user__roles.roles_target_id,users_field_data.status FROM users_field_data LEFT JOIN user__roles ON users_field_data.uid = user__roles.entity_id '$WHERECLAUSE

 drush $1 sqlq "$QUERY"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.