コード例 #1
0
 public function actionCreateManyUsers($params)
 {
     if (!\GO::user()->isAdmin()) {
         throw new \Exception("You must be logged in as admin");
     }
     \GO::config()->password_validate = false;
     \GO::session()->closeWriting();
     $amount = 50;
     $prefix = 'user';
     $domain = 'intermesh.dev';
     echo '<pre>';
     for ($i = 1; $i <= $amount; $i++) {
         echo "Creating {$prefix}{$i}\n";
         $user = \GO\Base\Model\User::model()->findSingleByAttribute('username', $prefix . $i);
         if (!$user) {
             $user = new \GO\Base\Model\User();
             $user->username = $prefix . $i;
             $user->email = $prefix . $i . '@' . $domain;
             $user->password = $prefix . $i;
             $user->first_name = $prefix;
             $user->last_name = $i;
             if (!$user->save()) {
                 var_dump($user->getValidationErrors());
                 exit;
             }
             $user->checkDefaultModels();
         }
         if (\GO::modules()->isInstalled('email') && \GO::modules()->isInstalled('postfixadmin')) {
             $domainModel = \GO\Postfixadmin\Model\Domain::model()->findSingleByAttribute('domain', $domain);
             if (!$domainModel) {
                 $domainModel = new \GO\Postfixadmin\Model\Domain();
                 $domainModel->domain = $domain;
                 $domainModel->save();
             }
             $mailboxModel = \GO\Postfixadmin\Model\Mailbox::model()->findSingleByAttributes(array('domain_id' => $domainModel->id, 'username' => $user->email));
             if (!$mailboxModel) {
                 $mailboxModel = new \GO\Postfixadmin\Model\Mailbox();
                 $mailboxModel->domain_id = $domainModel->id;
                 $mailboxModel->username = $user->email;
                 $mailboxModel->password = $prefix . $i;
                 $mailboxModel->name = $user->name;
                 $mailboxModel->save();
             }
             $accountModel = \GO\Email\Model\Account::model()->findSingleByAttributes(array('user_id' => $user->id, 'username' => $user->email));
             if (!$accountModel) {
                 $accountModel = new \GO\Email\Model\Account();
                 $accountModel->user_id = $user->id;
                 $accountModel->host = "localhost";
                 $accountModel->port = 143;
                 $accountModel->name = $user->name;
                 $accountModel->username = $user->email;
                 $accountModel->password = $prefix . $i;
                 $accountModel->smtp_host = 'localhost';
                 $accountModel->smtp_port = 25;
                 $accountModel->save();
                 $accountModel->addAlias($user->email, $user->name);
             }
         }
     }
     echo "Done\n\n";
 }
コード例 #2
0
ファイル: DemodataController.php プロジェクト: ajaboa/crmpuan
 private function _createMailbox($domainModel, $demo)
 {
     $demoMailbox = \GO\Postfixadmin\Model\Mailbox::model()->findSingleByAttribute('username', $demo->email);
     if (!$demoMailbox) {
         $demoMailbox = new \GO\Postfixadmin\Model\Mailbox();
         $demoMailbox->domain_id = $domainModel->id;
         $demoMailbox->username = $demo->email;
         $demoMailbox->password = '******';
         $demoMailbox->name = $demo->name;
         $demoMailbox->save();
     }
     $accountModel = \GO\Email\Model\Account::model()->findSingleByAttribute('username', $demoMailbox->username);
     if (!$accountModel) {
         $accountModel = new \GO\Email\Model\Account();
         $accountModel->user_id = $demo->id;
         //			$accountModel->checkImapConnectionOnSave=false;
         $accountModel->host = 'localhost';
         $accountModel->port = 143;
         $accountModel->username = $demoMailbox->username;
         $accountModel->password = '******';
         $accountModel->smtp_host = "localhost";
         $accountModel->smtp_port = 25;
         $accountModel->save();
         $accountModel->addAlias($accountModel->username, $demoMailbox->name);
     }
 }