add missing classes to container initialization
This commit is contained in:
@ -45,31 +45,64 @@ class Bootstrap implements BootstrapInterface
|
||||
{
|
||||
$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
|
||||
$di->set(Strategy\DefaultEmailChangeStrategy::class);
|
||||
$di->set(Strategy\InsecureEmailChangeStrategy::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 = [];
|
||||
foreach ($map as $class => $definition) {
|
||||
$di->set($class, $definition);
|
||||
$model = is_array($definition) ? $definition['class'] : $definition;
|
||||
$name = (substr($class, strrpos($class, '\\') + 1));
|
||||
$modelClassMap[$name] = $model;
|
||||
if(in_array($name, ['User', 'Profile', 'Token', 'Account'])) {
|
||||
$modelClassMap[$class] = $model;
|
||||
if(in_array($name, ['User', 'Profile', 'Token', 'SocialNetworkAccount'])) {
|
||||
$di->set("Da\\User\\Query\\{$name}Query", function() use ($model) {
|
||||
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]);
|
||||
|
||||
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\Traits\ContainerTrait;
|
||||
use dektrium\user\traits\ModuleTrait;
|
||||
use Da\User\Traits\ModuleTrait;
|
||||
use Yii;
|
||||
use yii\base\Model;
|
||||
|
||||
@ -33,13 +33,13 @@ class RegistrationForm extends Model
|
||||
public function rules()
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = $this->getClassMap()->get(User::class);
|
||||
$user = $this->getClassMap()->get('User');
|
||||
|
||||
return [
|
||||
// username rules
|
||||
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
|
||||
'usernameTrim' => ['username', 'filter', 'filter' => 'trim'],
|
||||
'usernamePattern' => ['username', 'match', 'pattern' => $user->usernameRegex],
|
||||
'usernamePattern' => ['username', 'match', 'pattern' => '/^[-a-zA-Z0-9_\.@]+$/'],
|
||||
'usernameRequired' => ['username', 'required'],
|
||||
'usernameUnique' => [
|
||||
'username',
|
||||
@ -58,7 +58,7 @@ class RegistrationForm extends Model
|
||||
'message' => Yii::t('user', 'This email address has already been taken')
|
||||
],
|
||||
// password rules
|
||||
'passwordRequired' => ['password', 'required', 'skipOnEmpty' => $this->module->enableGeneratingPassword],
|
||||
'passwordRequired' => ['password', 'required', 'skipOnEmpty' => $this->module->generatePasswords],
|
||||
'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72],
|
||||
];
|
||||
}
|
||||
|
||||
@ -138,7 +138,7 @@ class Profile extends ActiveRecord
|
||||
*/
|
||||
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()
|
||||
{
|
||||
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()
|
||||
{
|
||||
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 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.
|
||||
*/
|
||||
@ -143,7 +139,7 @@ class User extends ActiveRecord implements IdentityInterface
|
||||
return [
|
||||
// username rules
|
||||
'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],
|
||||
'usernameTrim' => ['username', 'trim'],
|
||||
'usernameUnique' => [
|
||||
@ -242,7 +238,7 @@ class User extends ActiveRecord implements IdentityInterface
|
||||
*/
|
||||
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