/** * @param $username string * @param $email string * @param $hashType null|string * @param $superuser bool */ protected function createUser($username, $email, $hashType = null, $superuser) { if ($username === null) { $username = Console::prompt("Username:"******"Email:"); } $emailValidator = new EmailValidator(true); if (!$emailValidator->validate($email)) { echo "Incorrect email address\n"; exit(1); } $has = User::objects()->filter(['username' => $username])->orFilter(['email' => $email])->get(); if ($has === null) { $password = $this->getPassword(); if ($superuser) { $model = User::objects()->createSuperUser($username, $password, $email, ['hash_type' => $hashType]); } else { $model = User::objects()->createUser($username, $password, $email, ['hash_type' => $hashType]); } if (is_array($model)) { echo implode("\n", $model); exit(1); } else { echo "Created\n"; } exit(0); } else { echo "User already exists\n"; exit(0); } }
/** * @param Request $request * @throws \Mindy\Exception\HttpException */ public function processRequest(Request $request) { if (Console::isCli() === false) { $authKey = $this->getToken($request); if (!empty($authKey)) { $key = Key::objects()->get(['key' => $authKey]); if ($key !== null) { $user = $key->user; $app = Mindy::app(); /** @var \Modules\Sites\SitesModule $siteModule */ $siteModule = $app->getModule('Sites'); if ($this->useSubDomains) { $site = $siteModule->getSite(); if ($user && $user->is_active && ($site->id == $user->site_id || $user->is_superuser)) { $app->auth->login($user); } } else { if ($user && $user->is_active) { $app->auth->login($user); $siteModule->setSite($user->site); } } } } } }
public function actionDelete($module) { if (ModuleManager::delete($module)) { echo Console::color("Success.", Console::FOREGROUND_GREEN) . PHP_EOL; } else { echo Console::color("Failed.", Console::FOREGROUND_RED) . PHP_EOL; } }
public static function preConfigure() { $app = Mindy::app(); $app->template->addLibrary(new UserLibrary()); $signal = $app->signal; $signal->handler('\\Modules\\User\\Models\\UserBase', 'createUser', function ($user) use($app) { if ($app->hasModule('Sites')) { $site = $app->getModule('Sites')->getSite(); } else { $site = null; } if (!$user->is_active && !empty($user->email)) { $app->mail->fromCode('user.registration', $user->email, ['data' => $user, 'site' => $site, 'activation_link' => $app->request->http->absoluteUrl($app->urlManager->reverse('user:registration_activation', ['key' => $user->activation_key]))]); } }); $signal->handler('\\Modules\\User\\Models\\UserBase', 'createRawUser', function ($user, $password) { if (!Console::isCli() && !empty($user->email) && !$user->is_active) { Mindy::app()->mail->fromCode('user.create_raw_user', $user->email, ['data' => $user, 'password' => $password]); } }); }
public function testCli() { $this->assertTrue(Console::isCli()); }
<?php use Mindy\Helper\Params; use Mindy\Template\Renderer; use Mindy\Helper\Console; return ['basePath' => dirname(__FILE__) . '/../', 'name' => 'Mindy', 'behaviors' => ['ParamsCollectionBehavior' => ['class' => '\\Mindy\\Base\\ParamsCollectionBehavior']], 'managers' => ['*****@*****.**'], 'locale' => ['language' => 'ru', 'sourceLanguage' => 'en', 'charset' => 'utf-8'], 'errorHandler' => ['useTemplate' => true], 'components' => ['middleware' => ['class' => '\\Mindy\\Middleware\\MiddlewareManager', 'middleware' => ['CurrentSiteMiddleware' => ['class' => '\\Modules\\Sites\\Middleware\\CurrentSiteMiddleware'], 'RedirectMiddleware' => ['class' => '\\Modules\\Redirect\\Middleware\\RedirectMiddleware']]], 'signal' => ['class' => '\\Mindy\\Event\\EventManager', 'events' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'events.php'], 'db' => ['class' => '\\Mindy\\Query\\ConnectionManager', 'databases' => ['default' => ['class' => '\\Mindy\\Query\\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=db', 'username' => 'user', 'password' => 'password', 'charset' => 'utf8']]], 'permissions' => ['class' => '\\Modules\\User\\Components\\Permissions'], 'mail' => ['class' => '\\Modules\\Mail\\Components\\DbMailer'], 'finder' => ['class' => '\\Mindy\\Finder\\FinderFactory'], 'authManager' => ['class' => '\\Modules\\User\\Components\\Permissions\\PermissionManager'], 'authGenerator' => ['class' => 'MPermissionGenerator'], 'request' => ['class' => '\\Mindy\\Http\\Request', 'enableCsrfValidation' => false], 'auth' => ['class' => '\\Modules\\User\\Components\\Auth', 'allowAutoLogin' => true, 'autoRenewCookie' => true], 'cache' => ['class' => '\\Mindy\\Cache\\DummyCache'], 'storage' => ['class' => '\\Mindy\\Storage\\FileSystemStorage'], 'template' => ['class' => '\\Mindy\\Template\\Renderer', 'mode' => MINDY_DEBUG ? Renderer::RECOMPILE_ALWAYS : Renderer::RECOMPILE_NEVER], 'session' => ['class' => '\\Modules\\User\\Components\\UserSession', 'sessionName' => 'mindy', 'autoStart' => !Console::isCli()], 'generator' => ['class' => '\\Mindy\\Base\\Generator'], 'logger' => ['class' => '\\Mindy\\Logger\\LoggerManager', 'handlers' => ['default' => ['class' => MINDY_DEBUG ? '\\Mindy\\Logger\\Handler\\RotatingFileHandler' : '\\Mindy\\Logger\\Handler\\NullHandler', 'level' => MINDY_DEBUG ? "DEBUG" : "ERROR"], 'null' => ['class' => '\\Mindy\\Logger\\Handler\\NullHandler', 'level' => 'ERROR'], 'console' => ['class' => '\\Mindy\\Logger\\Handler\\StreamHandler'], 'users' => ['class' => '\\Mindy\\Logger\\Handler\\RotatingFileHandler', 'alias' => 'application.runtime.users', 'level' => 'INFO', 'formatter' => 'users'], 'mail_admins' => ['class' => '\\Mindy\\Logger\\Handler\\SwiftMailerHandler']], 'formatters' => ['users' => ['class' => '\\Mindy\\Logger\\Formatters\\LineFormatter', 'format' => "%datetime% %message%\n"]], 'loggers' => ['users' => ['class' => '\\Monolog\\Logger', 'handlers' => ['users']]]]], 'preload' => ['logger', 'db'], 'modules' => include __DIR__ . '/modules.php'];
public function actionIndex() { echo Console::color("TODO documentation", Console::FOREGROUND_LIGHT_RED) . PHP_EOL; }