示例#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
             $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