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 static function _addAccount($user, $domainName) { if (\GO::modules()->isInstalled('email')) { \GO::debug("SERVERCLIENT: Adding e-mail account for " . $user->username . '@' . $domainName); $accountModel = new \GO\Email\Model\Account(); $accountModel->user_id = $user->id; $accountModel->mbroot = \GO::config()->serverclient_mbroot; $accountModel->use_ssl = \GO::config()->serverclient_use_ssl; $accountModel->novalidate_cert = \GO::config()->serverclient_novalidate_cert; // $accountModel->type=\GO::config()->serverclient_type; $accountModel->host = \GO::config()->serverclient_host; $accountModel->port = \GO::config()->serverclient_port; // $accountModel->name=$user->name; $accountModel->username = $user->username; if (empty(\GO::config()->serverclient_dont_add_domain_to_imap_username)) { $accountModel->username .= '@' . $domainName; } $accountModel->password = $user->getUnencryptedPassword(); $accountModel->smtp_host = \GO::config()->serverclient_smtp_host; $accountModel->smtp_port = \GO::config()->serverclient_smtp_port; $accountModel->smtp_encryption = \GO::config()->serverclient_smtp_encryption; $accountModel->smtp_username = \GO::config()->serverclient_smtp_username; $accountModel->smtp_password = \GO::config()->serverclient_smtp_password; $accountModel->save(); $alias = strpos($user->email, '@' . $domainName) ? $user->email : $accountModel->username; if (!strpos($alias, '@')) { $alias .= '@' . $domainName; } $accountModel->addAlias($alias, $user->name); } }
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); } }
public function createEmailAccount($user, $config, $username, $password) { if (\GO::modules()->isInstalled('email')) { \GO::debug('IMAPAUTH: Creating IMAP account for user'); $account['user_id'] = $user->id; $account['type'] = 'imap'; //$config['proto']; $account['host'] = $config['host']; $account['smtp_host'] = $config['smtp_host']; $account['smtp_port'] = $config['smtp_port']; $account['smtp_encryption'] = $config['smtp_encryption']; if (!empty($config['smtp_use_login_credentials'])) { $account['smtp_username'] = $username; $account['smtp_password'] = $password; } elseif (isset($config['smtp_username'])) { $account['smtp_username'] = $config['smtp_username']; $account['smtp_password'] = $config['smtp_password']; } $account['port'] = $config['port']; $account['use_ssl'] = empty($config['ssl']) ? 0 : 1; $account['mbroot'] = $config['mbroot']; $account['username'] = $username; $account['store_password'] = !isset($config['store_password']) || !empty($config['store_password']) ? 1 : 0; $account['store_smtp_password'] = !empty($account['store_password']) && !empty($config['smtp_use_login_credentials']) ? 1 : 0; $account['password'] = $password; //set session pass. $model = new \GO\Email\Model\Account(); $model->setAttributes($account); $model->save(); if (!$model->save()) { throw new \Exception("Could not save e-mail account: " . implode("\n", $model->getValidationErrors())); } $model->addAlias($user->email, $user->name); } else { \GO::debug('IMAPAUTH: E-mail module not installed. Skipping e-mail account creation.'); } }