where("username = '%s'",array($username))->find(); } /** * 注册新用户 * */ public function register($username,$password){ $password = md5(base64_encode(md5($password)).'576hbgh6'); return $this->add(array('username'=>$username ,'password'=>$password , 'reg_time'=>time())); } //修改用户密码 public function updatePwd($uid, $password){ $password = md5(base64_encode(md5($password)).'576hbgh6'); return $this->where("uid ='%d' ",array($uid))->save(array('password'=>$password)); } /** * 返回用户信息 * @return */ public function userInfo($uid){ return $this->where("uid = '%d'",array($uid))->find(); } /** *@param username:登录名 *@param password 登录密码 */ public function checkLogin($username,$password){ $password = md5(base64_encode(md5($password)).'576hbgh6'); $where=array($username,$password,$username,$password); return $this->where("( username='%s' and password='%s' ) ",$where)->find(); } //设置最后登录时间 public function setLastTime($uid){ return $this->where("uid='%s'",array($uid))->save(array("last_login_time"=>time())); } //删除用户 public function delete_user($uid){ D("TeamMember")->where("member_uid = '$uid' ")->delete(); D("TeamItemMember")->where("member_uid = '$uid' ")->delete(); D("ItemMember")->where("uid = '$uid' ")->delete(); D("UserToken")->where("uid = '$uid' ")->delete(); D("Template")->where("uid = '$uid' ")->delete(); D("ItemTop")->where("uid = '$uid' ")->delete(); $return = D("User")->where("uid = '$uid' ")->delete(); return $return ; } //检测ldap登录 public function checkLdapLogin($username ,$password ){ $ldap_open = D("Options")->get("ldap_open" ) ; $ldap_form = D("Options")->get("ldap_form" ) ; $ldap_form = json_decode($ldap_form,1); if (!$ldap_open) { return false; } if (!$ldap_form['user_field']) { $ldap_form['user_field'] = 'cn'; } $ldap_conn = ldap_connect($ldap_form['host'], $ldap_form['port']);//建立与 LDAP 服务器的连接 if (!$ldap_conn) { return false; } ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, $ldap_form['version']); $rs=ldap_bind($ldap_conn, $ldap_form['bind_dn'], $ldap_form['bind_password']);//与服务器绑定 用户登录验证 成功返回1 if (!$rs) { return false ; } $result = ldap_search($ldap_conn,$ldap_form['base_dn'],"(cn=*)"); $data = ldap_get_entries($ldap_conn, $result); for ($i=0; $i<$data["count"]; $i++) { $ldap_user = $data[$i][$ldap_form['user_field']][0] ; $dn = $data[$i]["dn"] ; if ($ldap_user == $username) { //如果该用户不在数据库里,则帮助其注册 $userInfo = D("User")->isExist($username) ; if(!$userInfo){ D("User")->register($ldap_user,$ldap_user.time()); } $rs2=ldap_bind($ldap_conn, $dn , $password); if ($rs2) { D("User")->updatePwd($userInfo['uid'], $password); return $this->checkLogin($username,$password); } } } return false ; } public function checkDbOk(){ $ret = $this->find() ; if ($ret) { return true; }else{ return false; } } }