原文地址http://symfony.com/doc/current/bundles/FOSUserBundle/command_line_tools.html
FOSUserBundle提供了大量的命令行工具来帮助你管理应用中的用户. 有这些命令任务可用:
- Create a User (创建用户)
- Activate a User (激活用户)
- Deactivate a User (停用用户)
- Promote a User (设置用户权限)
- Demote a User (清除用户权限)
- Change a User’s Password ( 重置用户密码)
在使用这些命令行之前, 你需要正确的安装以及配置好FOSUserBundle
此文中引用的是Symfony3的控制
bin/console. 如果你使用的Symfony2, 请调用app/console.
创建用户
你可以在应用中使用fos:user:create命令来创建用户. 这个命令包含三个参数, username, email, 和 password.
假如你需要创建一个用户名为testuser, 邮箱为`test@example.com, 密码为p@ssword`的用户, 则执行下面的命令
1 | php bin/console fos:user:create testuser test@example.com p@ssword |
若没有传递任何参数到此命令中, 则程序会自动询问你相应的信息. 假设你运行了下面这条命令, 你则会被询问去输入用户的email 和 password.
1 | php bin/console fos:user:create testuser |
你还可在命令中添加两个选项. --super-admin以及--inactive.
若输入了--super-admin选项, 则会将创建的用户标记为超级管理员. 超级管理员拥有应用中的所有权限. 下面是例子:
1 | php bin/console fos:user:create adminuser --super-admin |
若输入了--inactive, 则创建的用户将无法登陆, 除非该用户被激活.
1 | php bin/console fos:user:create testuser --inactive |
激活用户
fos:user:activate命令将激活一个未激活用户. 此命令必须包含一个username的参数来指定激活哪一个用户. 若为输入username 则会提示你来输入用户名. 下面是例子:
1 | $ php app/console fos:user:activate testuser |
停用用户
fos:user:deactivate命令可以禁用用户. 和激活用户的命令一样, 此命令也必须包含一个username的参数来指定禁用哪一个用户. 若未提供用户名, 则会被提示输入username. 下面是例子
1 | $ php app/console fos:user:deactivate testuser |
设置用户权限
fos:user:promote命令能够让你为一个用户添加一个角色或者使用户成为一个超级管理员.
假如你要为一个用户添加一个role (角色), 你只需要将第一个参数设定为要添加的用户名, 第二个参数作为角色名即可.
1 | php bin/console fos:user:promote testuser ROLE_ADMIN |
你可以通过在用户名后面添加--super选项, 将一个用户设定为超级管理员.
1 | $ php bin/console fos:user:promote testuser --super |
若你没有输入任何参数, 则你会被询问来输入这些参数.
你可以不同时指定
role参数和--super选项.
清除用户权限
fos:user:demote命令与为用户添加权限相似, 但功能相反. 你也可以使用这个命令来撤销一个超级管理员用户.
假如要移除一个用户的权限, 则需要将命令中的第一个参数设置为用户名, 第二个参数则为用户的角色.
1 | php bin/console fos:user:demote testuser ROLE_ADMIN |
要撤销一个超级管理员用户, 仅需设置用户名参数, 然后再加上--super选项即可.
1 | php bin/console fos:user:demote testuser --super |
你可以不同时指定
role参数和--super选项.
重置用户密码
fos:user:change-password命令提供一个简单的方式来修改用户密码. 这个命令有两个参数: 用户名(username), 新密码(password).
1 | php bin/console fos:user:change-password testuser newp@ssword |