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"; }
$module->save(); } } } $admin = new \GO\Base\Model\User(); $admin->first_name = \GO::t('system'); $admin->last_name = \GO::t('admin'); $admin->username = $args['adminusername']; $admin->password = $args['adminpassword']; $admin->email = \GO::config()->webmaster_email = $args['adminemail']; \GO::config()->save(); //disable password validation \GO::config()->password_validate = false; $admin->save(); $adminGroup->addUser($admin->id); $admin->checkDefaultModels(); //module code here because we need the user and the module for this if (\GO::modules()->files) { $folder = \GO\Files\Model\Folder::model()->findByPath('users/' . $admin->username . '/Public', true); $folder->visible = true; $acl = $folder->setNewAcl(); $acl->addGroup(\GO::config()->group_everyone, \GO\Base\Model\Acl::DELETE_PERMISSION); $folder->save(); } //Insert default cronjob record for email reminders $cron = new \GO\Base\Cron\CronJob(); $cron->name = 'Email Reminders'; $cron->active = true; $cron->runonce = false; $cron->minutes = '*/5'; // Every 5 minutes