วิธีการแสดงรายชื่อผู้ใช้ทั้งหมดใน drush?


12

drushผมอยากจะแสดงรายการข้อมูลเกี่ยวกับผู้ใช้ทุกคนใช้

มีuser-informationแต่มันจะแสดงข้อมูลเกี่ยวกับผู้ใช้คนเดียวเท่านั้น

มีวิธีแก้ไขปัญหาอื่น ๆ อีกไหม?

คำตอบ:


7

มีโครงการแซนด์บ็อกซ์ล่าสุด: รายการผู้ใช้ Drush (โดยJohn ) ซึ่งควรใช้กับ Drupal 6 & 7 (ดูGitHub )

การใช้งาน:

drush user-list

สำหรับวิธีแก้ปัญหาอื่น ๆ คำสั่งต่อไปนี้ที่มีไวยากรณ์การแทนที่กระบวนการควรช่วย:

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

อย่างไรก็ตามมันอาจล้มเหลวในบางกรณี (เมื่อผู้ใช้มีอักขระพิเศษบางตัวในชื่อของพวกเขา)


6

เมื่อ kenorb ชี้ให้เห็นมีวิธีแก้ปัญหาผ่านทาง SQL แบบสอบถาม

และเมื่อมีการเปลี่ยนแปลงเล็กน้อยมันจะมีความแข็งแกร่งมากขึ้นสำหรับอักขระพิเศษในชื่อ - โดยใช้ "uid" (จำนวนเต็ม) แทนชื่อผู้ใช้:

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

PS: ยืนยันสำหรับ Drupal 7 เท่านั้น
PPS: ขออภัยที่เพิ่มคำตอบอีกฉันยังไม่สามารถแสดงความคิดเห็น


5

สำหรับ Drupal 8 คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

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

ผลลัพธ์จะ loke บางอย่างดังนี้:

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


0

ขออภัย ... เขียนสคริปต์นี้สำหรับเครื่องระยะไกล Drupal 8 พร้อมนามแฝง ปรับให้เข้ากับท้องถิ่นได้อย่างง่ายดายหากจำเป็น

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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.