summaryrefslogtreecommitdiff
path: root/app/frontend/controls/LoginBox.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/frontend/controls/LoginBox.php')
-rw-r--r--app/frontend/controls/LoginBox.php39
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
+ );
+ }
+
+}
+
+?>