* @package sso * @link https://www.zentao.net */ class ssoTao extends ssoModel { /** * Bind ranzhi user to zentao user. * * @param object $data * @access protected * @return object|false */ protected function bindZTUser($data) { if(empty($data->bindPassword)) { dao::$errors[] = $this->lang->sso->bindNoPassword; return false; } $user = $this->dao->select('*')->from(TABLE_USER) ->where('account')->eq($data->bindUser) ->andWhere('password')->eq(md5($data->bindPassword)) ->andWhere('deleted')->eq('0') ->fetch(); if(empty($user)) { dao::$errors[] = $this->lang->sso->bindNoUser; return false; } $user->ranzhi = $this->session->ssoData->account; $this->dao->update(TABLE_USER)->set('ranzhi')->eq($user->ranzhi)->where('id')->eq($user->id)->exec(); return $user; } /** * Add to zentao user. * * @param object $data * @access protected * @return object|false */ protected function addZTUser($data) { if(!$this->loadModel('user')->checkPassword($data)) return false; $user = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($data->account)->fetch(); if($user) { dao::$errors[] = $this->lang->sso->bindHasAccount; return false; } $user = new stdclass(); $user->account = $data->account; $user->password = md5($data->password1); $user->realname = $data->realname; $user->gender = isset($data->gender) ? $data->gender : ''; $user->email = $data->email; $user->ranzhi = $this->session->ssoData->account; $user->role = isset($data->role) ? $data->role : ''; $this->dao->insert(TABLE_USER)->data($user)->autoCheck() ->batchCheck($this->config->user->create->requiredFields, 'notempty') ->check('account', 'unique') ->check('account', 'account') ->checkIF($user->email != false, 'email', 'email') ->exec(); return $user; } }