Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvipsoft <vipsoft@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2009-12-27 00:48:30 +0300
committervipsoft <vipsoft@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2009-12-27 00:48:30 +0300
commitd6d64878b776dc96cf49b7e71f644021e5aa1936 (patch)
tree4e6159cafee6cd7dc5cef01db8bd29f056707d01 /plugins/Login
parent80a976a2b7fef3fc0245609b656f756013a4b3a0 (diff)
refactoring (eg code duplicated in view & controller); redirect logic fix
Diffstat (limited to 'plugins/Login')
-rw-r--r--plugins/Login/Controller.php40
-rw-r--r--plugins/Login/Form.php6
-rw-r--r--plugins/Login/PasswordForm.php4
-rw-r--r--plugins/Login/ResetPasswordForm.php4
-rw-r--r--plugins/Login/templates/login.tpl2
-rw-r--r--plugins/Login/templates/lostPassword.tpl2
-rw-r--r--plugins/Login/templates/resetPassword.tpl2
7 files changed, 33 insertions, 27 deletions
diff --git a/plugins/Login/Controller.php b/plugins/Login/Controller.php
index 022c47bf01..469a50a30d 100644
--- a/plugins/Login/Controller.php
+++ b/plugins/Login/Controller.php
@@ -11,6 +11,7 @@
*/
/**
+ * Login controller
*
* @package Piwik_Login
*/
@@ -18,6 +19,9 @@ class Piwik_Login_Controller extends Piwik_Controller
{
/**
* Default action
+ *
+ * @param none
+ * @return void
*/
function index()
{
@@ -26,20 +30,22 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Login form
+ *
+ * @param string $messageNoAccess Access error message
+ * @param string $currentUrl Current URL
+ * @return void
*/
- function login()
+ function login($messageNoAccess = null)
{
- $messageNoAccess = null;
- $form = new Piwik_Login_Form();
-
- $currentUrl = Piwik_Url::getReferer();
+ $currentUrl = Piwik::getModule() == 'Login' ? Piwik_Url::getReferer() : 'index.php' . Piwik_Url::getCurrentQueryString();
$urlToRedirect = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
$urlToRedirect = htmlspecialchars_decode($urlToRedirect);
+ $form = new Piwik_Login_Form();
if($form->validate())
{
- // if the current url to redirect contains module=Login or Installation we instead redirect to the doc root
- if(preg_match('/module=(Login|Installation)/', $urlToRedirect))
+ // if the current url to redirect contains module=Login, Installation, or CoreUpdater, we instead redirect to the doc root
+ if(empty($urlToRedirect) || preg_match('/module=(Login|Installation|CoreUpdater)/', $urlToRedirect))
{
$urlToRedirect = 'index.php';
}
@@ -62,6 +68,9 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Form-less login
+ *
+ * @param none
+ * @return void
*/
function logme()
{
@@ -122,15 +131,18 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Lost password form. Email password reset information.
+ *
+ * @param none
+ * @return void
*/
function lostPassword()
{
$messageNoAccess = null;
- $form = new Piwik_Login_PasswordForm();
$currentUrl = 'index.php';
$urlToRedirect = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
$urlToRedirect = htmlspecialchars_decode($urlToRedirect);
+ $form = new Piwik_Login_PasswordForm();
if($form->validate())
{
$loginMail = $form->getSubmitValue('form_login');
@@ -213,16 +225,18 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Reset password form. Enter new password here.
+ *
+ * @param none
+ * @return void
*/
function resetPassword()
{
$messageNoAccess = null;
-
- $form = new Piwik_Login_ResetPasswordForm();
$currentUrl = 'index.php';
$urlToRedirect = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
$urlToRedirect = htmlspecialchars_decode($urlToRedirect);
+ $form = new Piwik_Login_ResetPasswordForm();
if($form->validate())
{
$loginMail = $form->getSubmitValue('form_login');
@@ -370,6 +384,9 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Clear session information
+ *
+ * @param none
+ * @return void
*/
static public function clearSession()
{
@@ -382,6 +399,9 @@ class Piwik_Login_Controller extends Piwik_Controller
/**
* Logout current user
+ *
+ * @param none
+ * @return void
*/
public function logout()
{
diff --git a/plugins/Login/Form.php b/plugins/Login/Form.php
index 04176cd52d..89acfe1625 100644
--- a/plugins/Login/Form.php
+++ b/plugins/Login/Form.php
@@ -25,15 +25,9 @@ class Piwik_Login_Form extends Piwik_Form
function init()
{
- // if form_url is not defined, go to referrer
- $currentUrl = Piwik_Url::getReferer();
- $urlToGoAfter = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
- $urlToGoAfter = htmlspecialchars_decode($urlToGoAfter);
-
$formElements = array(
array('text', 'form_login'),
array('password', 'form_password'),
- array('hidden', 'form_url', $urlToGoAfter),
);
$this->addElements( $formElements );
diff --git a/plugins/Login/PasswordForm.php b/plugins/Login/PasswordForm.php
index 7bb39d454c..dac4192c6f 100644
--- a/plugins/Login/PasswordForm.php
+++ b/plugins/Login/PasswordForm.php
@@ -25,12 +25,8 @@ class Piwik_Login_PasswordForm extends Piwik_Form
function init()
{
- $currentUrl = 'index.php';
- $urlToGoAfter = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
-
$formElements = array(
array('text', 'form_login'),
- array('hidden', 'form_url', $urlToGoAfter),
);
$this->addElements( $formElements );
diff --git a/plugins/Login/ResetPasswordForm.php b/plugins/Login/ResetPasswordForm.php
index a62cf775d1..1f623cd8aa 100644
--- a/plugins/Login/ResetPasswordForm.php
+++ b/plugins/Login/ResetPasswordForm.php
@@ -25,9 +25,6 @@ class Piwik_Login_ResetPasswordForm extends Piwik_Form
function init()
{
- $currentUrl = 'index.php';
- $urlToGoAfter = Piwik_Common::getRequestVar('form_url', $currentUrl, 'string');
-
$resetToken = Piwik_Common::getRequestVar('token', '', 'string');
$formElements = array(
@@ -35,7 +32,6 @@ class Piwik_Login_ResetPasswordForm extends Piwik_Form
array('password', 'form_password'),
array('password', 'form_password_bis'),
array('text', 'form_token'),
- array('hidden', 'form_url', $urlToGoAfter),
);
$this->addElements( $formElements );
diff --git a/plugins/Login/templates/login.tpl b/plugins/Login/templates/login.tpl
index 16d23a0a06..d8cf60f543 100644
--- a/plugins/Login/templates/login.tpl
+++ b/plugins/Login/templates/login.tpl
@@ -27,7 +27,7 @@
{*
<p class="forgetmenot"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Remember Me</label></p>
*}
- {$form_data.form_url.html}
+ <input name="form_url" type="hidden" value="{$urlToRedirect}" />
<p class="submit">
<input type="submit" value="{'Login_LogIn'|translate}" tabindex="100" />
</p>
diff --git a/plugins/Login/templates/lostPassword.tpl b/plugins/Login/templates/lostPassword.tpl
index 9f079f7ea4..7dcfd88bcf 100644
--- a/plugins/Login/templates/lostPassword.tpl
+++ b/plugins/Login/templates/lostPassword.tpl
@@ -23,7 +23,7 @@
<label>{'Login_LoginOrEmail'|translate}:<br />
<input type="text" name="form_login" id="form_login" class="input" value="" size="20" tabindex="10" /></label>
</p>
- {$form_data.form_url.html}
+ <input name="form_url" type="hidden" value="{$urlToRedirect}" />
<p class="submit">
<input type="submit" value="{'Login_RemindPassword'|translate}" tabindex="100" />
</p>
diff --git a/plugins/Login/templates/resetPassword.tpl b/plugins/Login/templates/resetPassword.tpl
index 2bb77b4ae9..01c0616058 100644
--- a/plugins/Login/templates/resetPassword.tpl
+++ b/plugins/Login/templates/resetPassword.tpl
@@ -35,7 +35,7 @@
<input type="text" name="form_token" id="form_token" class="input" value="{$form_data.form_token.value}" size="20" tabindex="40" /></label>
</p>
- {$form_data.form_url.html}
+ <input name="form_url" type="hidden" value="{$urlToRedirect}" />
<p class="submit">
<input type="submit" value="{'Login_ChangePassword'|translate}" tabindex="100" />
</p>