public function saveRebuild() { $fields = ['lft', 'rgt', 'level', 'root']; if ($this->parent == null) { $this->lft = 1; $this->rgt = 2; $this->level = 0; $this->root = $this->pk; return parent::save($fields); } else { if ($this->parent->lft) { $target = $this->parent; $key = $target->rgt; $this->root = $target->root; $this->shiftLeftRight($key, 2); $this->lft = $key; $this->rgt = $key + 1; $this->level = $target->level + 1; return parent::save($fields); } } return false; }
public function login(Model $model, $duration = null) { $time = $model->getDb()->getQueryBuilder()->convertToDateTime(time()); $model->last_login = $time; $model->save(['last_login']); if ($duration === null) { $duration = Mindy::app()->getModule('User')->loginDuration; } $this->saveToCookie($model, $duration); if ($this->absoluteAuthTimeout) { $this->getStorage()->add(self::AUTH_ABSOLUTE_TIMEOUT_VAR, time() + $this->absoluteAuthTimeout); } $model->setIsGuest(false); $this->setModel($model); $sessionId = Mindy::app()->session->getId(); $session = Session::objects()->get(['id' => $sessionId]); if ($session) { $session->user = $model; $session->save(); } $this->getEventManager()->send($this, 'onAuth', $model); if (class_exists('\\Modules\\UserActions\\Models\\UserLog')) { \Modules\UserActions\Models\UserLog::objects()->create(['message' => UserModule::t('User <a href="{url}">{name}</a> logged in', ['{url}' => $model->getAbsoluteUrl(), '{name}' => (string) $model]), 'module' => $model->getModuleName(), 'ip' => $model->getIp(), 'user' => $model]); } return !$this->getIsGuest(); }