/** * 初始化rbac 默认设置 */ public function rbacInit() { Console::output('初始化RBAC数据 ....'); $auth = Yii::$app->authManager; /* ================= 权限 ================= */ $visitAdmin = $auth->createPermission('visitAdmin'); $visitAdmin->description = '访问后台管理界面'; $auth->add($visitAdmin); /* ================= 身份 ================= */ $guest = $auth->createRole('guest'); // 匿名用户 $guest->description = '匿名用户'; $auth->add($guest); $user = $auth->createRole('user'); //普通用户 $user->description = '普通用户'; $auth->add($user, $guest); //普通用户 > 匿名用户 $admin = $auth->createRole('admin'); // 管理员 $admin->description = '管理员'; $auth->add($admin); $auth->addChild($admin, $user); // 管理员 > 普通用户 $auth->addChild($admin, $visitAdmin); // 管理员可以访问后台 $founder = $auth->createRole('founder'); // 创始人 $founder->description = '创始人'; $auth->add($founder); $auth->addChild($founder, $admin); // 创始人 > 管理员 Console::output('初始化RBAC数据完成 ....'); }
public function commentInit() { if (!$this->topic) { return; } Console::output('创建默认评论 ....'); $comment = new Comment(); $comment->setAttributes(['author_id' => 1, 'content' => '默认评论内容']); $message = $this->topic->addComment($comment, true) ? '成功' : '失败'; Console::output('创建默认评论' . $message); }
public function dbInit() { exit; if (Yii::$app->db->dsn !== null) { Yii::$app->db->open(); return; } Console::output('需要初始并生成数据库设置 ....'); $dbHost = Console::prompt('请输入数据库地址', ['default' => 'localhost']); $dbName = Console::prompt('请输入数据库名称(并确定数据库已建立)', ['default' => Yii::$app->name]); $dbUsername = Console::prompt('请输入数据库账户名', ['default' => 'root']); $dbPassword = Console::prompt('请输入数据库密码(默认为空)', ['default' => '']); $dbPrefix = Console::prompt('请输入数据库表前缀', ['default' => 'pre_']); }
public function initMenu() { Console::output('初始化后台菜单 ....'); /* ============= 添加后台菜单 ============= */ //用户 AdminHelper::addMenu('user', ['/user/admin/user/index'], '用户管理', ['icon' => 'fa-user', 'priority' => 10]); //rbac AdminHelper::addMenu('rbac', ['/user/admin/rbac/index'], '角色权限', ['subShow' => false, 'icon' => 'fa-group', 'priority' => 20]); AdminHelper::addSubMenu('rbac', 'roles', ['/user/admin/rbac/roles'], '角色列表'); AdminHelper::addSubMenu('rbac', 'permissions', ['/user/admin/rbac/permissions'], '权限列表'); //系统设置 AdminHelper::addMenu('system', ['/admin/system/index'], '系统设置', ['icon' => 'fa-gears', 'priority' => 20]); Console::output('初始化后台菜单完成 ....'); }
/** * 用户创建交互程序 * @param $userForm * @return mixed */ private function saveUserData($userForm) { $authManager = Yii::$app->authManager; $founder = $authManager->getRole('founder'); $userForm->username = Console::prompt('请先创建创始人用户', ['default' => 'admin']); $userForm->email = Console::prompt('请先创建创始人邮箱', ['default' => '*****@*****.**']); $userForm->password = Console::prompt('请先创建创始人密码', ['default' => 'admin']); if (!($user = $userForm->register())) { Console::output('输入数据验证错误'); foreach ($userForm->getErrors() as $k => $v) { Console::output($k . ':' . PHP_EOL . implode(PHP_EOL, $v)); } Console::output('请重新输入'); $this->saveUserData($user); } $user->setAttributes([]); $success = $user->save(); $uid = $success ? $user->id : 1; // 用户创建成功则指定用户id,否则指定id为1的用户为创始人. $founder && $authManager->assign($founder, $uid); // 指定创始人身份 return $success; }