Einen Benutzer als Administrator über die Drush-Befehlszeile festlegen?

11

Wie kann ich einen Benutzer per Drush auf eine bestimmte Rolle einstellen? In meinem Fall möchte ich dem Benutzer die Rolle des Administrators geben.

Patoshi パ ト シ
quelle

Antworten:

15
drush help user-add-role
Add a role to the specified user accounts.

Examples:
 drush user-add-role "power user" 5,user3  Add the "power user" role to the accounts with name, id, or email 5 or user3, uids 2 
 --uid=2,3 --name=someguy,somegal          and 3, names someguy and somegal, and email address of billgates@microsoft.com       
 --mail=billgates@microsoft.com

Arguments:
 role                                      The name of the role to add                                                
 users                                     (optional) A comma delimited list of uids, user names, or email addresses.

Options:
 --mail=<me@example.com>                   A comma delimited list of user mail addresses of users to operate on. 
 --name=<foo>                              A comma delimited list of user names of users to operate on.          
 --uid=<3,5>                               A comma delimited list of uids of users to operate on.

Aliases: urol

Also, für Ihren Anwendungsfall:

drush user-add-role administrator USERNAME

greg_1_anderson
quelle
Tats zu einfach! = P ... zumindest weiß ich jetzt, wie es über SQL geht ... lol
Patoshi
@ duckx, aber das ist wie mit einem Back-Scratcher, um Ihre Vorderseite zu kratzen
Patrick Ryan
0

Zuerst müssen Sie die Benutzer-ID (UID) in der Benutzertabelle wie folgt abrufen :

drush sqlq 'select * from users \Gamma'

Meine UID, die ich wollte, war uid = 444

Rufen Sie dann die Rollen-ID ab, die Sie diesem Benutzer zuweisen möchten:

drush sqlq 'select * from role'

Administratorrolle ist rid = 3

Jetzt habe ich meine UID und los, ich mache folgendes:

drush sqlq 'insert into users_roles (uid, rid) values (444, 3);'
Patoshi パ ト シ
quelle
1
Mach das niemals! Gewöhnen Sie sich nicht an, Ihre Datenbank zu manipulieren. Irgendwann wird etwas schrecklich kaputt gehen, wenn Sie einen Hook überspringen, der aufgerufen worden wäre, wenn Sie die richtigen APIs verwendet hätten. Ich denke, diese Antwort sollte gelöscht werden.