/** * Create not privileged user * @param $username * @param $password * @param $email * @param array $extra * @return array|\Modules\User\Models\User Errors or created model */ public function createUser($username, $password, $email = null, array $extra = []) { /** @var \Modules\User\PasswordHasher\IPasswordHasher $hasher */ $auth = Mindy::app()->auth; $hasher = $auth->getPasswordHasher(isset($extra['hash_type']) ? $extra['hash_type'] : $this->defaultPasswordHasher); $model = $this->getModel(); $model->setAttributes(array_merge(['username' => $username, 'email' => $email, 'password' => $hasher->hashPassword($password), 'activation_key' => $this->generateActivationKey()], $extra)); if ($model->isValid() && $model->save()) { $groups = Group::objects()->filter(['is_default' => true])->all(); foreach ($groups as $group) { $model->groups->link($group); } $permission = Permission::objects()->filter(['is_default' => true])->all(); foreach ($permission as $perm) { $model->permissions->link($perm); } $eventManager = $this->getEventManager(); $module = Mindy::app()->getModule('User'); if ($module->sendUserCreateMail) { $eventManager->send($model, 'createUser', $model); } else { if ($module->sendUserCreateRawMail) { $eventManager->send($model, 'createRawUser', $model, $password); } } } return $model; }
public function testInit() { $this->assertEquals(0, User::objects()->count()); $this->assertEquals(0, Group::objects()->count()); $this->assertEquals(0, Permission::objects()->count()); $this->assertEquals(0, UserPermission::objects()->count()); $this->assertEquals(0, GroupPermission::objects()->count()); $this->assertEquals(0, Key::objects()->count()); $this->assertEquals(0, Session::objects()->count()); }