/**
  * This command creates new user account with admin role. If password is not set, this command will generate new 8-char password.
  * After saving user to database, this command uses mailer component to send credentials (username and password) to
  * user via email.
  *
  * @param string      $email    Email address
  * @param string      $username Username
  * @param null|string $password Password (if null it will be generated automatically)
  */
 public function actionAdmin($email, $username, $password = null)
 {
     $user = \Yii::createObject(['class' => User::className(), 'scenario' => 'create', 'email' => $email, 'username' => $username, 'password' => $password]);
     if ($user->create()) {
         $auth = \Yii::$app->authManager;
         $role = $auth->getRole('admin');
         $assignment = $auth->assign($role, $user->getId());
         if (empty($assignment)) {
             $this->stdout(\Yii::t('user', 'User has been created') . "!\n", Console::FG_GREEN);
             $this->stdout('Could not assign user for admin role: ' . \yii\helpers\CVarDumper::dumpAsString($assignment) . "\n", Console::FG_RED);
         } else {
             $this->stdout(\Yii::t('user', 'User with admin role has been created') . "!\n", Console::FG_GREEN);
         }
     } else {
         $this->stdout(\Yii::t('user', 'Please fix following errors:') . "\n", Console::FG_RED);
         foreach ($user->errors as $errors) {
             foreach ($errors as $error) {
                 $this->stdout(" - " . $error . "\n", Console::FG_RED);
             }
         }
     }
 }
Esempio n. 2
0
 private function saveRoleAssignment($roleName, $model, $userId)
 {
     $auth = \Yii::$app->authManager;
     $assignmentItem = $auth->getItemByUser($roleName, $userId);
     if ($assignmentItem == null) {
         $role = $auth->getRole($roleName);
         $assignment = $auth->assign($role, $userId);
         if (empty($assignment)) {
             throw new \yii\web\ServerErrorHttpException(\yii\helpers\CVarDumper::dumpAsString($assignment));
         }
     }
 }
Esempio n. 3
0
 private function saveModuleAccess($module, $model, $userId)
 {
     $moduleMenuManager = \Yii::$app->moduleAccessibilityManager;
     $moduleAccessible = $moduleMenuManager->getModuleByUser($module, $userId);
     if ($moduleAccessible == null) {
         $moduleAccessible = $moduleMenuManager->applyAccess($module, $userId);
         if (empty($moduleAccessible)) {
             throw new \yii\web\ServerErrorHttpException(\yii\helpers\CVarDumper::dumpAsString($moduleAccessible));
         }
     }
 }