public function componentLogin() { $this->selected_tab = isset($this->section) ? $this->section : 'login'; $this->options = $this->getParameterHolder(); if (TBGContext::hasMessage('login_referer')) { $this->referer = htmlentities(TBGContext::getMessage('login_referer'), ENT_COMPAT, TBGContext::getI18n()->getCharset()); } elseif (array_key_exists('HTTP_REFERER', $_SERVER)) { $this->referer = htmlentities($_SERVER['HTTP_REFERER'], ENT_COMPAT, TBGContext::getI18n()->getCharset()); } else { $this->referer = TBGContext::getRouting()->generate('dashboard'); } try { $this->loginintro = null; $this->registrationintro = null; $this->loginintro = TBGArticlesTable::getTable()->getArticleByName('LoginIntro'); $this->registrationintro = TBGArticlesTable::getTable()->getArticleByName('RegistrationIntro'); } catch (Exception $e) { } if (TBGSettings::isLoginRequired()) { TBGContext::getResponse()->deleteCookie('tbg3_username'); TBGContext::getResponse()->deleteCookie('tbg3_password'); $this->error = TBGContext::geti18n()->__('You need to log in to access this site'); } elseif (!TBGContext::getUser()->isAuthenticated()) { $this->error = TBGContext::geti18n()->__('Please log in'); } else { //$this->error = TBGContext::geti18n()->__('Please log in'); } }
/** * "My account" page * * @param TBGRequest $request */ public function runMyAccount(TBGRequest $request) { $this->forward403unless($this->getUser()->hasPageAccess('account')); $notificationsettings = array(); $i18n = $this->getI18n(); $notificationsettings[TBGSettings::SETTINGS_USER_SUBSCRIBE_CREATED_UPDATED_COMMENTED_ISSUES] = $i18n->__('Automatically subscribe to issues I get involved in'); $notificationsettings[TBGSettings::SETTINGS_USER_SUBSCRIBE_CREATED_UPDATED_COMMENTED_ARTICLES] = $i18n->__('Automatically subscribe to article I get involved in'); $notificationsettings[TBGSettings::SETTINGS_USER_SUBSCRIBE_NEW_ISSUES_MY_PROJECTS] = $i18n->__('Automatically subscribe to new issues that are created in my project(s)'); $notificationsettings[TBGSettings::SETTINGS_USER_SUBSCRIBE_NEW_ARTICLES_MY_PROJECTS] = $i18n->__('Automatically subscribe to new articles that are created in my project(s)'); $this->notificationsettings = $notificationsettings; $this->has_autopassword = TBGContext::hasMessage('auto_password'); if ($this->has_autopassword) { $this->autopassword = TBGContext::getMessage('auto_password'); } if ($request->isPost() && $request->hasParameter('mode')) { switch ($request['mode']) { case 'information': if (!$request['buddyname'] || !$request['email']) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('error' => TBGContext::getI18n()->__('Please fill out all the required fields'))); } $this->getUser()->setBuddyname($request['buddyname']); $this->getUser()->setRealname($request['realname']); $this->getUser()->setHomepage($request['homepage']); $this->getUser()->setEmailPrivate((bool) $request['email_private']); $this->getUser()->setUsesGravatar((bool) $request['use_gravatar']); $this->getUser()->setTimezone($request->getRawParameter('timezone')); $this->getUser()->setLanguage($request['profile_language']); if ($this->getUser()->getEmail() != $request['email']) { if (TBGEvent::createNew('core', 'changeEmail', $this->getUser(), array('email' => $request['email']))->triggerUntilProcessed()->isProcessed() == false) { $this->getUser()->setEmail($request['email']); } } $this->getUser()->save(); return $this->renderJSON(array('title' => TBGContext::getI18n()->__('Profile information saved'))); break; case 'settings': $this->getUser()->setPreferredWikiSyntax($request['syntax_articles']); $this->getUser()->setPreferredIssuesSyntax($request['syntax_issues']); $this->getUser()->setPreferredCommentsSyntax($request['syntax_comments']); $this->getUser()->setKeyboardNavigationEnabled($request['enable_keyboard_navigation']); foreach ($notificationsettings as $setting => $description) { if ($request->hasParameter('core_' . $setting)) { $this->getUser()->setNotificationSetting($setting, true)->save(); } else { $this->getUser()->setNotificationSetting($setting, false)->save(); } } TBGEvent::createNew('core', 'mainActions::myAccount::saveNotificationSettings')->trigger(compact('request')); $this->getUser()->save(); return $this->renderJSON(array('title' => TBGContext::getI18n()->__('Profile settings saved'))); break; case 'module': foreach (TBGContext::getModules() as $module_name => $module) { if ($request['target_module'] == $module_name && $module->hasAccountSettings()) { if ($module->postAccountSettings($request)) { return $this->renderJSON(array('title' => TBGContext::getI18n()->__('Settings saved'))); } else { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('error' => TBGContext::getI18n()->__('An error occured'))); } } } break; } } $this->rnd_no = rand(); $this->languages = TBGI18n::getLanguages(); $this->timezones = TBGI18n::getTimezones(); $this->error = TBGContext::getMessageAndClear('error'); $this->username_chosen = TBGContext::getMessageAndClear('username_chosen'); $this->openid_used = TBGContext::getMessageAndClear('openid_used'); $this->rsskey_generated = TBGContext::getMessageAndClear('rsskey_generated'); $this->selected_tab = 'profile'; if ($this->rsskey_generated) { $this->selected_tab = 'security'; } }
?> <?php } ?> <form accept-charset="<?php echo TBGContext::getI18n()->getCharset(); ?> " action="<?php echo make_url('login'); ?> " method="post" id="login_form" onsubmit="TBG.Main.Login.login('<?php echo make_url('login'); ?> '); return false;"> <?php if (!TBGContext::hasMessage('login_force_redirect') || TBGContext::getMessage('login_force_redirect') !== true) { ?> <input type="hidden" id="tbg3_referer" name="tbg3_referer" value="<?php echo $referer; ?> " /> <?php } else { ?> <input type="hidden" id="return_to" name="return_to" value="<?php echo $referer; ?> " /> <?php } ?>