diff options
Diffstat (limited to 'app/frontend/controls/LoginBox.php')
-rw-r--r-- | app/frontend/controls/LoginBox.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/frontend/controls/LoginBox.php b/app/frontend/controls/LoginBox.php new file mode 100644 index 0000000..1136a79 --- /dev/null +++ b/app/frontend/controls/LoginBox.php @@ -0,0 +1,39 @@ +<?php + +Prado::using('Application.web.TemplateControl'); + +class LoginBox extends TemplateControl { + + public function onInit($param) { + parent::onInit($param); + if (!$this->Page->IsPostBack && !$this->User->IsGuest) { + $this->_afterLoginRedirect(); + } + } + + private function _afterLoginRedirect() { + $authModule = $this->Application->getModule('auth'); + $redirUrl = $authModule->ReturnUrl; + if (!$redirUrl + || $redirUrl == $this->Service->constructUrl($authModule->LoginPage)) { + $redirUrl = $this->Service->constructUrl(NULL); + } + $this->Response->redirect($redirUrl); + } + + public function loginUser($sender, $param) { + if ($this->Page->IsValid) { + $this->_afterLoginRedirect(); + } + } + + public function validatePassword($sender, $param) { + $param->IsValid = $this->Application->getModule('auth')->login( + $this->Login->Text, + $this->Password->Text + ); + } + +} + +?> |