¿Cómo enumerar todos los usuarios en drush?

12

Me gustaría enumerar información sobre todos los usuarios que usan drush.

La hay user-information, pero muestra información solo sobre un solo usuario.

¿Hay alguna otra solución?

kenorb
fuente

Respuestas:

7

Hay un proyecto reciente de sandbox: Drush User List (por John ) que debería funcionar para Drupal 6 y 7 (ver GitHub ).

Uso:

drush user-list

Para otra solución alternativa, el siguiente comando con la sintaxis de sustitución de procesos debería ayudar:

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

Sin embargo, podría fallar en algunos casos (cuando los usuarios tienen algunos caracteres especiales en su nombre).

kenorb
fuente
5

Como señaló Kenorb, hay una solución alternativa a través de la consulta SQL.

Y con un cambio menor, se vuelve más robusto a los caracteres especiales en los nombres, usando "uid" (entero) en lugar de los nombres de usuario:

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

PD: confirmado solo para Drupal 7.
PPS: Perdón por agregar otra respuesta, no puedo comentar todavía.

El Hannes
fuente
5

Para Drupal 8 puede ejecutar el siguiente comando:

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

La salida buscará algo como lo siguiente:

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

Para Drupal 8, hay un comando Drush 9 en Packagist , p. Ej.

drush users:list

Lista de todos los usuarios de Drupal en formato de tabla. Consulte drush users:list --helplas opciones de filtrado.

Ricardo
fuente
0

Lo siento ... escribí este script para máquinas remotas Drupal 8 con alias; fácilmente adaptable a local si es necesario.

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
fuente