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"; }
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); } }