示例#1
0
 /**
  * @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);
                     }
                 }
             }
         }
     }
 }
示例#3
0
 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;
     }
 }
示例#4
0
 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());
 }
示例#6
0
<?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'];
示例#7
0
 public function actionIndex()
 {
     echo Console::color("TODO documentation", Console::FOREGROUND_LIGHT_RED) . PHP_EOL;
 }