tao.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * The tao file of sso module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  6. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Yidong Wang <yidong@easycorp.ltd>
  8. * @package sso
  9. * @link https://www.zentao.net
  10. */
  11. class ssoTao extends ssoModel
  12. {
  13. /**
  14. * Bind ranzhi user to zentao user.
  15. *
  16. * @param object $data
  17. * @access protected
  18. * @return object|false
  19. */
  20. protected function bindZTUser($data)
  21. {
  22. if(empty($data->bindPassword))
  23. {
  24. dao::$errors[] = $this->lang->sso->bindNoPassword;
  25. return false;
  26. }
  27. $user = $this->dao->select('*')->from(TABLE_USER)
  28. ->where('account')->eq($data->bindUser)
  29. ->andWhere('password')->eq(md5($data->bindPassword))
  30. ->andWhere('deleted')->eq('0')
  31. ->fetch();
  32. if(empty($user))
  33. {
  34. dao::$errors[] = $this->lang->sso->bindNoUser;
  35. return false;
  36. }
  37. $user->ranzhi = $this->session->ssoData->account;
  38. $this->dao->update(TABLE_USER)->set('ranzhi')->eq($user->ranzhi)->where('id')->eq($user->id)->exec();
  39. return $user;
  40. }
  41. /**
  42. * Add to zentao user.
  43. *
  44. * @param object $data
  45. * @access protected
  46. * @return object|false
  47. */
  48. protected function addZTUser($data)
  49. {
  50. if(!$this->loadModel('user')->checkPassword($data)) return false;
  51. $user = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($data->account)->fetch();
  52. if($user)
  53. {
  54. dao::$errors[] = $this->lang->sso->bindHasAccount;
  55. return false;
  56. }
  57. $user = new stdclass();
  58. $user->account = $data->account;
  59. $user->password = md5($data->password1);
  60. $user->realname = $data->realname;
  61. $user->gender = isset($data->gender) ? $data->gender : '';
  62. $user->email = $data->email;
  63. $user->ranzhi = $this->session->ssoData->account;
  64. $user->role = isset($data->role) ? $data->role : '';
  65. $this->dao->insert(TABLE_USER)->data($user)->autoCheck()
  66. ->batchCheck($this->config->user->create->requiredFields, 'notempty')
  67. ->check('account', 'unique')
  68. ->check('account', 'account')
  69. ->checkIF($user->email != false, 'email', 'email')
  70. ->exec();
  71. return $user;
  72. }
  73. }