3 require_once 'MTrackWeb.php';
6 class MTrackWeb_Login extends MTrackWeb
8 var $template = 'login.html';
15 function get($u='', $ar=array())
18 if (!isset($_REQUEST['ajax_body'])) {
19 $this->title = "Login";
22 $this->masterTemplate = 'login.html';
25 /** ---------- reset passwords ----- */
26 $uu = explode('/', $u);
27 if ($uu[0] != 'Reset') {
28 $this->err('404', 'Invalid URL');
30 $u = DB_DataObject::factory('Person');
31 if (!$u->get($uu[1])) {
32 $this->err('404', 'Invalid URL');
34 $uu[2] = (int) $uu[2];
36 if ($uu[2] < (time() - (60 * 60 * 24 * 2))) { // older than 2 days.
37 HTML_FlexyFramework::run('ForgotPassword', array('errors' => array('reset_expired' => 1)));
40 // print_R($u->genPassKey($uu[2]));
41 if ($uu[3] != $u->genPassKey($uu[2])) {
42 HTML_FlexyFramework::run('ForgotPassword', array('errors' => array('reset_invalid' => 1)));
48 $u->generatePassword();
50 $u->sendTemplate('reset_password', $this);
52 $this->warnings = array('password_sent' => true);
57 foreach($ar as $k=>$v) {
63 if (!empty($_REQUEST['logout'])) {
64 if ($this->getAuthUser()) {
65 $this->getAuthUser()->logout();
67 HTML_FlexyFramework::run(''); //
73 require_once 'HTML/Template/Flexy/Factory.php';
74 $this->elements = HTML_Template_Flexy_Factory::fromArray ( $_POST ,$this->elements);
80 function errmsg($str) {
81 $this->errors[$str] = 1;
89 $u = DB_DataObject::factory('Person');
91 $u->whereAdd('LENGTH(passwd) > 1');
92 //$u->company_id = $this->company->id;
94 if (empty($_REQUEST['username'])) { //|| (strpos($_REQUEST['username'], '@') < 1)) {
95 return $this->errmsg('bad_1');
99 $u->email = $_REQUEST['username'];
100 if ($u->count() > 1 || !$u->find(true)) {
101 return $this->errmsg('bad_2');
106 // return $this->errmsg('disabled');
109 if ($u->checkPassword($_REQUEST['password'])) {
111 $this->addEvent("LOGIN");
112 //if (!empty($_REQUEST['lang']) && $_REQUEST['lang'] != $u->lang) {
114 //// $uu->lang = $_REQUEST['lang'];
118 HTML_FlexyFramework::run(''); //
120 //$this->sendAuthUserDetails();
127 return $this->errmsg('bad_3'); // - " . htmlspecialchars(print_r($_POST,true))."'");