public function actionLogout(User $user, CSRF $CSRF)
 {
     $valid = $CSRF->check(Request::get($CSRF->csrfParam));
     if ($valid) {
         $user->logout(true);
     }
     $this->redirect(Url::set()->removeAllArgs()->getAbsolute())->send(true);
 }
 protected function prepareBody(SignupForm $model, Users $users)
 {
     $placeholders = $users->toArray();
     $placeholders['password'] = $model->password;
     if ($model->generateToken) {
         $placeholders['url'] = Url::set($this->activateUrl)->addArgs(['token' => $placeholders['token']])->getAbsolute();
     }
     return $this->template->getChunk($this->emailBodyTpl, $placeholders);
 }
 public function actionIndex(User $user, Session $session)
 {
     $placeholders = [];
     if ($session->hasFlash($this->keySessionFlash)) {
         $placeholders['content'] = i18n::t('successActivate');
         return $this->render('success', $placeholders);
     } elseif ($user->isGuest() && ($users = Users::activate(Request::get('token')))) {
         // auto-login
         $user->addMulti($users->toArray(['id', 'username', 'url']));
         $user->login();
         $session->setFlash($this->keySessionFlash);
         $this->response->redirect(Url::set()->removeAllArgs()->getAbsoluteUrl(true))->send(true);
         return null;
     }
     return $this->notPage('@frontend.views/layouts/notPage');
 }
 protected function getMessageLogout(CSRF $CSRF, $key, $layout = '@common.views/elements/alert-info')
 {
     $args = [$CSRF->csrfParam => $CSRF->get(), 'service' => 'logout'];
     $content = i18n::t($key, ['url' => Url::set()->addArgs($args)->getRelative()]);
     return $this->template->getChunk($layout, ['output' => $content]);
 }