Làm thế nào để liệt kê tất cả người dùng trong drush?


12

Tôi muốn liệt kê thông tin về tất cả người dùng sử dụng drush.

user-information, nhưng nó chỉ hiển thị thông tin về người dùng duy nhất.

Có bất kỳ giải pháp khác?

Câu trả lời:


7

Có dự án hộp cát gần đây: Danh sách người dùng Drush (của John ) sẽ hoạt động cho Drupal 6 & 7 (xem GitHub ).

Sử dụng:

drush user-list

Đối với cách giải quyết khác, lệnh sau với cú pháp thay thế quy trình sẽ giúp:

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

Tuy nhiên, nó có thể thất bại trong một số trường hợp (khi người dùng có một số ký tự đặc biệt trong tên của họ).


5

Như kenorb đã chỉ ra, có một cách giải quyết thông qua truy vấn SQL.

Và với một thay đổi nhỏ, nó trở nên mạnh mẽ hơn đối với các ký tự đặc biệt trong tên - bằng cách sử dụng "uid" (số nguyên) thay vì tên người dùng:

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

PS: Xác nhận chỉ dành cho Drupal 7.
PPS: Xin lỗi vì đã thêm câu trả lời khác, tôi chưa thể bình luận.


5

Đối với Drupal 8, bạn có thể chạy lệnh sau:

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

Đầu ra sẽ loke một cái gì đó như sau:

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

4

Đối với Drupal 8, có một lệnh Drush 9 trên Packagist , vd

drush users:list

Liệt kê tất cả người dùng Drupal theo định dạng bảng. Xem drush users:list --helpđể biết các tùy chọn lọc.


0

Xin lỗi ... đã viết kịch bản này cho Drupal 8 máy từ xa có bí danh; dễ dàng thích nghi với địa phương nếu cần thiết.

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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.