add missing classes to container initialization
This commit is contained in:
@ -45,31 +45,64 @@ class Bootstrap implements BootstrapInterface
|
|||||||
{
|
{
|
||||||
$di = Yii::$container;
|
$di = Yii::$container;
|
||||||
|
|
||||||
|
// events
|
||||||
|
$di->set(Event\FormEvent::class);
|
||||||
|
$di->set(Event\ProfileEvent::class);
|
||||||
|
$di->set(Event\ResetPasswordEvent::class);
|
||||||
|
$di->set(Event\SocialNetworkAuthEvent::class);
|
||||||
|
$di->set(Event\SocialNetworkConnectEvent::class);
|
||||||
|
$di->set(Event\UserEvent::class);
|
||||||
|
|
||||||
|
// forms
|
||||||
|
$di->set(Form\LoginForm::class);
|
||||||
|
$di->set(Form\RecoveryForm::class);
|
||||||
|
$di->set(Form\RegistrationForm::class);
|
||||||
|
$di->set(Form\ResendForm::class);
|
||||||
|
$di->set(Form\SettingsForm::class);
|
||||||
|
|
||||||
|
// helpers
|
||||||
|
$di->set(Helper\AuthHelper::class);
|
||||||
|
$di->set(Helper\GravatarHelper::class);
|
||||||
|
$di->set(Helper\SecurityHelper::class);
|
||||||
|
|
||||||
|
// search class
|
||||||
|
$di->set(Search\UserSearch::class, [$di->get(Query\UserQuery::class)]);
|
||||||
|
|
||||||
|
// services
|
||||||
|
$di->set(Service\AccountConfirmationService::class);
|
||||||
|
$di->set(Service\EmailChangeService::class);
|
||||||
|
$di->set(Service\PasswordRecoveryService::class);
|
||||||
|
$di->set(Service\ResendConfirmationService::class);
|
||||||
|
$di->set(Service\ResetPasswordService::class);
|
||||||
|
$di->set(Service\SocialNetworkAccountConnectService::class);
|
||||||
|
$di->set(Service\SocialNetworkAuthenticateService::class);
|
||||||
|
$di->set(Service\UserBlockService::class);
|
||||||
|
$di->set(Service\UserCreateService::class);
|
||||||
|
$di->set(Service\UserRegisterService::class);
|
||||||
|
$di->set(Service\UserConfirmationService::class);
|
||||||
|
|
||||||
// email change strategy
|
// email change strategy
|
||||||
$di->set(Strategy\DefaultEmailChangeStrategy::class);
|
$di->set(Strategy\DefaultEmailChangeStrategy::class);
|
||||||
$di->set(Strategy\InsecureEmailChangeStrategy::class);
|
$di->set(Strategy\InsecureEmailChangeStrategy::class);
|
||||||
$di->set(Strategy\SecureEmailChangeStrategy::class);
|
$di->set(Strategy\SecureEmailChangeStrategy::class);
|
||||||
|
|
||||||
// class map + query models
|
// validators
|
||||||
|
$di->set(Validator\AjaxRequestModelValidator::class);
|
||||||
|
$di->set(TimeZoneValidator::class);
|
||||||
|
|
||||||
|
// class map models + query classes
|
||||||
$modelClassMap = [];
|
$modelClassMap = [];
|
||||||
foreach ($map as $class => $definition) {
|
foreach ($map as $class => $definition) {
|
||||||
$di->set($class, $definition);
|
$di->set($class, $definition);
|
||||||
$model = is_array($definition) ? $definition['class'] : $definition;
|
$model = is_array($definition) ? $definition['class'] : $definition;
|
||||||
$name = (substr($class, strrpos($class, '\\') + 1));
|
$name = (substr($class, strrpos($class, '\\') + 1));
|
||||||
$modelClassMap[$name] = $model;
|
$modelClassMap[$class] = $model;
|
||||||
if(in_array($name, ['User', 'Profile', 'Token', 'Account'])) {
|
if(in_array($name, ['User', 'Profile', 'Token', 'SocialNetworkAccount'])) {
|
||||||
$di->set("Da\\User\\Query\\{$name}Query", function() use ($model) {
|
$di->set("Da\\User\\Query\\{$name}Query", function() use ($model) {
|
||||||
return $model::find();
|
return $model::find();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// search class
|
|
||||||
$di->set(Search\UserSearch::class, [$di->get(Query\UserQuery::class)]);
|
|
||||||
|
|
||||||
// helpers
|
|
||||||
$di->set(Helper\AuthHelper::class);
|
|
||||||
$di->set(Helper\GravatarHelper::class);
|
|
||||||
$di->setSingleton(ClassMapHelper::class, ClassMapHelper::class, [$modelClassMap]);
|
$di->setSingleton(ClassMapHelper::class, ClassMapHelper::class, [$modelClassMap]);
|
||||||
|
|
||||||
if (php_sapi_name() !== 'cli') {
|
if (php_sapi_name() !== 'cli') {
|
||||||
@ -83,23 +116,6 @@ class Bootstrap implements BootstrapInterface
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// services
|
|
||||||
$di->set(Service\UserCreateService::class);
|
|
||||||
$di->set(Service\UserRegisterService::class);
|
|
||||||
$di->set(Service\UserConfirmationService::class);
|
|
||||||
|
|
||||||
// events
|
|
||||||
$di->set(Event\FormEvent::class);
|
|
||||||
$di->set(Event\ProfileEvent::class);
|
|
||||||
$di->set(Event\ResetPasswordEvent::class);
|
|
||||||
$di->set(Event\SocialNetworkAuthEvent::class);
|
|
||||||
$di->set(Event\SocialNetworkConnectEvent::class);
|
|
||||||
$di->set(Event\UserEvent::class);
|
|
||||||
|
|
||||||
// validators
|
|
||||||
$di->set(Validator\AjaxRequestModelValidator::class);
|
|
||||||
$di->set(TimeZoneValidator::class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -4,7 +4,7 @@ namespace Da\User\Form;
|
|||||||
|
|
||||||
use Da\User\Model\User;
|
use Da\User\Model\User;
|
||||||
use Da\User\Traits\ContainerTrait;
|
use Da\User\Traits\ContainerTrait;
|
||||||
use dektrium\user\traits\ModuleTrait;
|
use Da\User\Traits\ModuleTrait;
|
||||||
use Yii;
|
use Yii;
|
||||||
use yii\base\Model;
|
use yii\base\Model;
|
||||||
|
|
||||||
@ -33,13 +33,13 @@ class RegistrationForm extends Model
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
/** @var User $user */
|
/** @var User $user */
|
||||||
$user = $this->getClassMap()->get(User::class);
|
$user = $this->getClassMap()->get('User');
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// username rules
|
// username rules
|
||||||
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
|
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
|
||||||
'usernameTrim' => ['username', 'filter', 'filter' => 'trim'],
|
'usernameTrim' => ['username', 'filter', 'filter' => 'trim'],
|
||||||
'usernamePattern' => ['username', 'match', 'pattern' => $user->usernameRegex],
|
'usernamePattern' => ['username', 'match', 'pattern' => '/^[-a-zA-Z0-9_\.@]+$/'],
|
||||||
'usernameRequired' => ['username', 'required'],
|
'usernameRequired' => ['username', 'required'],
|
||||||
'usernameUnique' => [
|
'usernameUnique' => [
|
||||||
'username',
|
'username',
|
||||||
@ -58,7 +58,7 @@ class RegistrationForm extends Model
|
|||||||
'message' => Yii::t('user', 'This email address has already been taken')
|
'message' => Yii::t('user', 'This email address has already been taken')
|
||||||
],
|
],
|
||||||
// password rules
|
// password rules
|
||||||
'passwordRequired' => ['password', 'required', 'skipOnEmpty' => $this->module->enableGeneratingPassword],
|
'passwordRequired' => ['password', 'required', 'skipOnEmpty' => $this->module->generatePasswords],
|
||||||
'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72],
|
'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -138,7 +138,7 @@ class Profile extends ActiveRecord
|
|||||||
*/
|
*/
|
||||||
public function getUser()
|
public function getUser()
|
||||||
{
|
{
|
||||||
return $this->hasOne($this->getClassMap()->get(User::class), ['id' => 'user_id']);
|
return $this->hasOne($this->getClassMap()->get('User'), ['id' => 'user_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -96,7 +96,7 @@ class SocialNetworkAccount extends ActiveRecord
|
|||||||
*/
|
*/
|
||||||
public function getUser()
|
public function getUser()
|
||||||
{
|
{
|
||||||
return $this->hasOne($this->getClassMap()->get(User::class), ['id' => 'user_id']);
|
return $this->hasOne($this->getClassMap()->get('User'), ['id' => 'user_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -74,7 +74,7 @@ class Token extends ActiveRecord
|
|||||||
*/
|
*/
|
||||||
public function getUser()
|
public function getUser()
|
||||||
{
|
{
|
||||||
return $this->hasOne($this->getClassMap()->get(User::class), ['id' => 'user_id']);
|
return $this->hasOne($this->getClassMap()->get('User'), ['id' => 'user_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -47,10 +47,6 @@ class User extends ActiveRecord implements IdentityInterface
|
|||||||
const OLD_EMAIL_CONFIRMED = 0b1;
|
const OLD_EMAIL_CONFIRMED = 0b1;
|
||||||
const NEW_EMAIL_CONFIRMED = 0b10;
|
const NEW_EMAIL_CONFIRMED = 0b10;
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string default user name regular expression.
|
|
||||||
*/
|
|
||||||
public $usernameRegex = '/^[-a-zA-Z0-9_\.@]+$/';
|
|
||||||
/**
|
/**
|
||||||
* @var string Plain password. Used for model validation.
|
* @var string Plain password. Used for model validation.
|
||||||
*/
|
*/
|
||||||
@ -143,7 +139,7 @@ class User extends ActiveRecord implements IdentityInterface
|
|||||||
return [
|
return [
|
||||||
// username rules
|
// username rules
|
||||||
'usernameRequired' => ['username', 'required', 'on' => ['register', 'create', 'connect', 'update']],
|
'usernameRequired' => ['username', 'required', 'on' => ['register', 'create', 'connect', 'update']],
|
||||||
'usernameMatch' => ['username', 'match', 'pattern' => $this->usernameRegex],
|
'usernameMatch' => ['username', 'match', 'pattern' => '/^[-a-zA-Z0-9_\.@]+$/'],
|
||||||
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
|
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
|
||||||
'usernameTrim' => ['username', 'trim'],
|
'usernameTrim' => ['username', 'trim'],
|
||||||
'usernameUnique' => [
|
'usernameUnique' => [
|
||||||
@ -242,7 +238,7 @@ class User extends ActiveRecord implements IdentityInterface
|
|||||||
*/
|
*/
|
||||||
public function getProfile()
|
public function getProfile()
|
||||||
{
|
{
|
||||||
return $this->hasOne($this->getClassMap()->get(Profile::class), ['user_id' => 'id']);
|
return $this->hasOne($this->getClassMap()->get('Profile'), ['user_id' => 'id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user