drush
ผมอยากจะแสดงรายการข้อมูลเกี่ยวกับผู้ใช้ทุกคนใช้
มีuser-information
แต่มันจะแสดงข้อมูลเกี่ยวกับผู้ใช้คนเดียวเท่านั้น
มีวิธีแก้ไขปัญหาอื่น ๆ อีกไหม?
drush
ผมอยากจะแสดงรายการข้อมูลเกี่ยวกับผู้ใช้ทุกคนใช้
มีuser-information
แต่มันจะแสดงข้อมูลเกี่ยวกับผู้ใช้คนเดียวเท่านั้น
มีวิธีแก้ไขปัญหาอื่น ๆ อีกไหม?
คำตอบ:
มีโครงการแซนด์บ็อกซ์ล่าสุด: รายการผู้ใช้ Drush (โดยJohn ) ซึ่งควรใช้กับ Drupal 6 & 7 (ดูGitHub )
การใช้งาน:
drush user-list
สำหรับวิธีแก้ปัญหาอื่น ๆ คำสั่งต่อไปนี้ที่มีไวยากรณ์การแทนที่กระบวนการควรช่วย:
drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users")
อย่างไรก็ตามมันอาจล้มเหลวในบางกรณี (เมื่อผู้ใช้มีอักขระพิเศษบางตัวในชื่อของพวกเขา)
เมื่อ kenorb ชี้ให้เห็นมีวิธีแก้ปัญหาผ่านทาง SQL แบบสอบถาม
และเมื่อมีการเปลี่ยนแปลงเล็กน้อยมันจะมีความแข็งแกร่งมากขึ้นสำหรับอักขระพิเศษในชื่อ - โดยใช้ "uid" (จำนวนเต็ม) แทนชื่อผู้ใช้:
drush uinf $(drush sqlq "SELECT GROUP_CONCAT(uid) FROM users")
PS: ยืนยันสำหรับ Drupal 7 เท่านั้น
PPS: ขออภัยที่เพิ่มคำตอบอีกฉันยังไม่สามารถแสดงความคิดเห็น
สำหรับ 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
สำหรับ Drupal 8 มีคำสั่ง Drush 9 สำหรับ Packagistเช่น
drush users:list
แสดงผู้ใช้ Drupal ทั้งหมดในรูปแบบตาราง ดู
drush users:list --help
ตัวเลือกการกรอง
ขออภัย ... เขียนสคริปต์นี้สำหรับเครื่องระยะไกล 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"