public function login($core) { // Loading Logged In User if ($core->session_get('login_key') && $core->session_get('login_ssid')) { $user_mail = crypto::decode($core->session_get('login_key'), $core->crypto); $user_mail = $core->text->email($user_mail); $userdata = $this->getbyname($user_mail); if ($userdata['user_id']) { $set_ssid = md5($core->session_get('login_key') . crypto::encode($userdata['user_pass'], $core->crypto)); if ($set_ssid != $core->session_get('login_ssid')) { $userdata = null; } } else { $userdata = null; } } else { $userdata = null; } // Trying To Log In if ($core->post['in_user'] && $core->post['in_pass']) { $in_user = $core->text->email($core->post['in_user']); $in_pass = $core->text->pass($core->post['in_pass']); $userdata = $this->getbyname($in_user); if ($userdata['user_id'] && $in_pass == $userdata['user_pass']) { $set_login = crypto::encode($userdata['user_mail'], $core->crypto); $set_ssid = md5($set_login . crypto::encode($userdata['user_pass'], $core->crypto)); $core->session_set('login_key', $set_login); $core->session_set('login_ssid', $set_ssid); } else { $userdata = null; } } // Password Recovery if ($core->get['recoverpass']) { $token = $core->text->link($core->get['recoverpass']); $id = substr($token, 0, -32); $key = substr($token, strlen($id)); $id = (int) $id; $userdata = $id ? $this->get($id) : null; if ($userdata['user_id'] && $key == md5(crypto::encode($userdata['user_mail'] . $userdata['user_pass'], $core->crypto))) { $set_login = crypto::encode($userdata['user_mail'], $core->crypto); $set_ssid = md5($set_login . crypto::encode($userdata['user_pass'], $core->crypto)); $core->session_set('login_key', $set_login); $core->session_set('login_ssid', $set_ssid); } else { $userdata = null; } } if ($userdata) { $this->id = (int) $userdata['user_id']; $this->name = $userdata['user_name']; $this->email = $userdata['user_mail']; $this->level = $userdata['user_level']; $this->work = $userdata['user_work']; $this->ban = $userdata['user_ban']; $this->cash = $userdata['user_cash']; $this->wmr = $userdata['user_wmr']; $this->ref = $userdata['user_ref']; $this->sub = $userdata['user_sub']; $this->ext = $userdata['user_ext']; $this->comp = $userdata['user_comp']; $this->compad = $userdata['user_compad']; $this->call = $userdata['user_call']; $this->shave = $userdata['user_shave']; $this->vip = $userdata['user_vip']; $this->api = $userdata['user_api']; $this->news = $userdata['user_news']; $this->supp_new = $userdata['supp_new']; $this->auth = true; $ip = ip2int($core->server['REMOTE_ADDR']); $dd = date('Ymd'); if ($ip != $userdata['user_ip'] || $dd != $userdata['user_date']) { $this->set($userdata['user_id'], array('user_ip' => $ip, 'user_date' => $dd)); } } else { $this->auth = false; } }