sfDoctrineGuardPluggin перезаписывает пароль от прибора после сброса данных - PullRequest
3 голосов
/ 25 июля 2011

У меня есть Symfony 1.4 с Doctrine и sfDoctrineGuardPlugin.

У меня проблема с загрузкой приборов для sfGuardUser , которые сделаны из доктрины Symfony: data-dump

Суть проблемы заключается в том, что пароли в файле фикстуры не зашифрованы и будут зашифрованы в процессе загрузки фикстуры.

С другой стороны - когда мы выгружаем данные из базы данных, пароли уже зашифрованы, и если мы попытаемся загрузить их снова, значение пароля будет повторно перехвачено во второй раз .

Кто-нибудь знает, как избежать этой ситуации?

Я использую этот процесс для предотвращения потери данных, когда необходимо изменить модель. Если кто-нибудь знает другое решение для этой конкретной проблемы, я буду признателен!

1 Ответ

4 голосов
/ 25 июля 2011

Существует решение для этого на старом форуме Symfony .

Вкратце: создайте функцию setEncryptedPassword в вашей пользовательской модели следующим образом:

  public function setEncryptedPassword($v)
  {
    if ($v !== null) {
        $v = (string) $v;
    }

    if ($this->password !== $v) {
        parent::_set('password', $v);
    }

    return $this;
  }

Ив вашем дампе измените все password вхождения на encrypted_password.

...