Como listar todos os usuários no drush?

12

Eu gostaria de listar informações sobre todos os usuários que estão usando drush.

Existe user-information, mas mostra informações apenas sobre um único usuário.

Existem outras soluções?

kenorb
fonte

Respostas:

7

Existe um projeto recente de sandbox: Drush User List (por John ), que deve funcionar para o Drupal 6 e 7 (consulte GitHub ).

Uso:

drush user-list

Para outras soluções alternativas, o seguinte comando com sintaxe de substituição de processo deve ajudar:

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

No entanto, isso pode falhar em alguns casos (quando os usuários têm alguns caracteres especiais em seus nomes).

kenorb
fonte
5

Como o kenorb apontou, há uma solução alternativa via consulta SQL.

E com uma pequena alteração, torna-se mais robusto para caracteres especiais em nomes - usando "uid" (número inteiro) em vez dos nomes de usuário:

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

PS: Confirmado apenas para o Drupal 7.
PPS: Desculpe por adicionar outra resposta, não posso comentar ainda.

El Hannes
fonte
5

Para o Drupal 8, você pode executar o seguinte comando:

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

A saída exibirá algo como o seguinte:

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

Para o Drupal 8, existe um comando Drush 9 no Packagist , por exemplo

drush users:list

Listar todos os usuários do Drupal em um formato de tabela. Veja drush users:list --helppara opções de filtragem.

Richard
fonte
0

Desculpe ... escrevi este script para máquinas remotas Drupal 8 com aliases; facilmente adaptável ao local, se necessário.

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"
Sean
fonte