/** * Finds user by [[email]] * * @return UserModel|null */ public function getUser() { if ($this->_user === false) { $this->_user = UserModel::findByEmail($this->email); } return $this->_user; }
/** * Assign role to the user * * @param $roleName string user role * @param $email string user email * * @return int */ public function actionAssignRoleToUser($roleName, $email) { $authManager = Yii::$app->authManager; $user = UserModel::findByEmail($email); $role = $authManager->getRole($roleName); if (empty($user)) { $this->stdout("User with `{$email}` does not exists.\n", Console::FG_RED); return self::EXIT_CODE_ERROR; } if (empty($role)) { $this->stdout("Role `{$roleName}` does not exists.\n", Console::FG_RED); return self::EXIT_CODE_ERROR; } // Check if role is already assigned to the user if (in_array($roleName, array_keys($authManager->getRolesByUser($user->id)))) { $this->stdout("Role `{$roleName}` already assigned to this user.\n", Console::FG_BLUE); return self::EXIT_CODE_NORMAL; } $authManager->assign($role, $user->id); $this->stdout("The role `{$roleName}` has been successfully assigned to the user with email {$email}\n", Console::FG_YELLOW); return self::EXIT_CODE_NORMAL; }