Esempio n. 1
0
 /**
  * @param ReadableUser $user
  * @return int
  * @throws InsertUserException
  * @throws \Exception
  * @throws \mtoolkit\entity\model\role\exception\InsertRoleException
  */
 public function save(ReadableUser $user)
 {
     $sql = "CALL mt_user_save(?, ?, ?, ?, ?, ?, ?, ?);";
     $query = new MPDOQuery($sql, $this->connection);
     // $query->bindValue($user->getId());
     $query->bindValue($user->getEmail());
     $query->bindValue($user->getPassword());
     $query->bindValue($user->getPhoneNumber());
     $query->bindValue((int) $user->isTwoFactorEnabled());
     $query->bindValue($user->getEnabledDate()->format("Y-m-d H:i:s"));
     $query->bindValue((int) $user->isEnabled());
     $query->bindValue($user->getAccessFailedCount());
     $query->bindValue($user->getUserName());
     $queryResult = $query->exec();
     if ($queryResult == false) {
         throw new InsertUserException($query->getLastError()->getDriverText());
     }
     $result = $query->getResult();
     $id = (int) $result[0]["id"];
     for ($k = 0; $k < count($user->getRoleList()); $k++) {
         $role = $user->getRoleList()[$k];
         $this->roleBook->saveRole($id, $role);
     }
     for ($k = 0; $k < count($user->getProviderUserList()); $k++) {
         $providerUser = $user->getProviderUserList()[$k];
         $this->providerUserBook->save($id, $providerUser);
     }
     return (int) $id;
 }
 public function testSaveAndGet()
 {
     for ($i = 0; $i < count($this->providerUserList); $i++) {
         /* @var $providerUser ProviderUser */
         $providerUser = $this->providerUserList[$i];
         $this->providerUserBook->save($this->providerUserList[$i]);
         $this->providerUserList[$i] = $providerUser;
     }
     $providerUsersInDB = $this->providerUserBook->get();
     $this->assertEquals(count($this->providerUserList), count($providerUsersInDB));
     for ($i = 0; $i < count($this->providerUserList); $i++) {
         $currentProviderUser = $this->providerUserList[$i];
         $providerUsersInDb = $this->providerUserBook->get($currentProviderUser->getUserId(), $currentProviderUser->getProviderId(), $currentProviderUser->getProviderUserId());
         $providerUserInDB = $providerUsersInDb[0];
         $this->assertEquals($currentProviderUser, $providerUserInDB);
     }
 }