/module/admin/model.php
https://github.com/easysoft/zentaopms · PHP · 257 lines · 124 code · 25 blank · 108 comment · 20 complexity · 7c95b4bae4519e26eaab110fdd33183c MD5 · raw file
- <?php
- /**
- * The model file of admin module of ZenTaoPMS.
- *
- * @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
- * @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
- * @author Chunsheng Wang <chunsheng@cnezsoft.com>
- * @package admin
- * @version $Id: model.php 5148 2013-07-16 01:31:08Z chencongzhi520@gmail.com $
- * @link http://www.zentao.net
- */
- ?>
- <?php
- class adminModel extends model
- {
- /**
- * The api root.
- *
- * @var string
- * @access public
- */
- public $apiRoot;
- /**
- * Post data form API.
- *
- * @param string $url
- * @param string $formvars
- * @access public
- * @return void
- */
- public function postAPI($url, $formvars = '')
- {
- return common::http($url, $formvars);
- }
- /**
- * Get status of zentaopms.
- *
- * @access public
- * @return void
- */
- public function getStatOfPMS()
- {
- $sql = "SHOW TABLE STATUS";
- $tables = $this->dbh->query($sql)->fetchALL();
- }
- /**
- * Get state of company.
- *
- * @param int $companyID
- * @access public
- * @return void
- */
- public function getStatOfCompany($companyID)
- {
- }
- /**
- * Get system info.
- *
- * @access public
- * @return void
- */
- public function getStatOfSys()
- {
- }
- /**
- * Register zentao by API.
- *
- * @access public
- * @return void
- */
- public function registerByAPI()
- {
- $apiConfig = $this->getApiConfig();
- $apiURL = $this->config->admin->apiRoot . "/user-apiRegister.json?HTTP_X_REQUESTED_WITH=XMLHttpRequest&{$apiConfig->sessionVar}={$apiConfig->sessionID}";
- return $this->postAPI($apiURL, $_POST);
- }
- /**
- * Login zentao by API.
- *
- * @access public
- * @return void
- */
- public function bindByAPI()
- {
- $apiConfig = $this->getApiConfig();
- $apiURL = $this->config->admin->apiRoot . "/user-bindChanzhi.json?HTTP_X_REQUESTED_WITH=XMLHttpRequest&{$apiConfig->sessionVar}={$apiConfig->sessionID}";
- return $this->postAPI($apiURL, $_POST);
- }
- /**
- * Get secret key.
- *
- * @access public
- * @return object
- */
- public function getSecretKey()
- {
- $apiConfig = $this->getApiConfig();
- $apiURL = $this->config->admin->apiRoot . "/user-secretKey.json";
- $params['u'] = $this->config->global->community;
- $params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $params[$apiConfig->sessionVar] = $apiConfig->sessionID;
- $params['k'] = $this->getSignature($params);
- $result = common::http($apiURL . '?' . http_build_query($params));
- $result = json_decode($result);
- return $result;
- }
- /**
- * Send code by API.
- *
- * @param string $type
- * @access public
- * @return string
- */
- public function sendCodeByAPI($type)
- {
- $apiConfig = $this->getApiConfig();
- $module = $type == 'mobile' ? 'sms' : 'mail';
- $apiURL = $this->config->admin->apiRoot . "/{$module}-apiSendCode.json";
- $params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $params[$apiConfig->sessionVar] = $apiConfig->sessionID;
- if(isset($this->config->global->community) and $this->config->global->community != 'na') $this->post->set('account', $this->config->global->community);
- $param = http_build_query($params);
- return $this->postAPI($apiURL . '?' . $param, $_POST);
- }
- /**
- * Certify by API.
- *
- * @param string $type
- * @access public
- * @return string
- */
- public function certifyByAPI($type)
- {
- $apiConfig = $this->getApiConfig();
- $module = $type == 'mobile' ? 'sms' : 'mail';
- $apiURL = $this->config->admin->apiRoot . "/{$module}-apiCertify.json";
- $params['u'] = $this->config->global->community;
- $params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $params[$apiConfig->sessionVar] = $apiConfig->sessionID;
- $params['k'] = $this->getSignature($params);
- $param = http_build_query($params);
- return $this->postAPI($apiURL . '?' . $param, $_POST);
- }
- /**
- * Set company by API.
- *
- * @access public
- * @return string
- */
- public function setCompanyByAPI()
- {
- $apiConfig = $this->getApiConfig();
- $apiURL = $this->config->admin->apiRoot . "/user-apiSetCompany.json";
- $params['u'] = $this->config->global->community;
- $params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $params[$apiConfig->sessionVar] = $apiConfig->sessionID;
- $params['k'] = $this->getSignature($params);
- $param = http_build_query($params);
- return $this->postAPI($apiURL . '?' . $param, $_POST);
- }
- /**
- * Get signature.
- *
- * @param array $params
- * @access public
- * @return string
- */
- public function getSignature($params)
- {
- unset($params['u']);
- $privateKey = $this->config->global->ztPrivateKey;
- return md5(http_build_query($params) . md5($privateKey));
- }
- /**
- * Get api config.
- *
- * @access public
- * @return object
- */
- public function getApiConfig()
- {
- if(!$this->session->apiConfig or time() - $this->session->apiConfig->serverTime > $this->session->apiConfig->expiredTime)
- {
- $config = file_get_contents($this->config->admin->apiRoot . "?mode=getconfig");
- $config = json_decode($config);
- if(empty($config) or empty($config->sessionID)) return null;
- $this->session->set('apiConfig', $config);
- }
- return $this->session->apiConfig;
- }
- /**
- * Get register information.
- *
- * @access public
- * @return object
- */
- public function getRegisterInfo()
- {
- $register = new stdclass();
- $register->company = $this->app->company->name;
- $register->email = $this->app->user->email;
- return $register;
- }
- /**
- * Check weak.
- *
- * @param object $user
- * @access public
- * @return bool
- */
- public function checkWeak($user)
- {
- $weaks = array();
- /* Check weak password when login. */
- if($this->app->moduleName == 'user' and $this->app->methodName == 'login')
- {
- if(!isset($_POST['passwordStrength'])) return false;
- if(isset($this->config->safe->mode) and $this->post->passwordStrength < $this->config->safe->mode) return true;
- }
- foreach(explode(',', $this->config->safe->weak) as $weak)
- {
- $weak = md5(trim($weak));
- $weaks[$weak] = $weak;
- }
- if(isset($weaks[$user->password])) return true;
- if($user->password == md5($user->account)) return true;
- if($user->phone and $user->password == md5($user->phone)) return true;
- if($user->mobile and $user->password == md5($user->mobile)) return true;
- if($user->birthday and $user->password == md5($user->birthday)) return true;
- return false;
- }
- }