Example #1
0
 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;
 }
Example #2
0
 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();
 }