Kullanıcının şifreyi değiştirip değiştirmediğini nasıl kontrol edebilirim?


9

Şifreyi değiştirdikten sonra ona şifre değişikliğini bildirmek için kullanıcıya temel bildirim e-postası göndermek istedim.

Bunun için Rulesmodüller kullanıyorum . Ancak kullanıcı parolayı değiştirdiğinde koşul eklemek için orada herhangi bir seçenek bulamıyorum.

Kullanıcının kurallarını kullanarak veya pragmatik olarak şifresini değiştirip değiştirmediğini kontrol edebileceğim bir yol var mı?

- Zaman ayırdığınız için çok teşekkürler.


1
Bunun size yardımcı olabileceğini kontrol edin drupal.stackexchange.com/questions/68380/…
Samuel Beniamin

Yanıtlar:


7

En kolayı bunu Kurallar'ı kullanarak yapmak olacaktır. Sonraki adımları takip ederek, işi yapmalısınız.

  1. Modüller sayfasında "PHP filtresi" ni etkinleştirdiğinizden emin olun. Kurallar içinde PHP kodu kullanabilmek için bu gereklidir.
  2. "Yeni bir kullanıcı hesabı kaydettikten sonra" kullanıcı olayına yanıt veren bir kural oluşturun.
  3. "Özel PHP kodu yürüt" türünde bir koşul ekleyin ve aşağıdaki kod parçasını kullanın:
    return $account_unchanged->pass != $account->pass;
  4. Kullanıcıya veya amacınıza uyan herhangi bir şeye e-posta bildirimi göndermek için eylemlerinizi ekleyin.

Bunu denediniz mi?
'15

Evet, cevabı yazmadan hemen önce bunu test ettim.
ovi

Teşekkürler, basit ve verimli bir çözüm. Çekicilik gibi çalışır !!
Kalpesh Patel

4

Daha önce Kurallar'da denemedim, ancak muhtemelen ve $accountve $account->originalnesnelerindeki değerleri karşılaştırma meselesi olurdu .

Özel kodda yapmanın bir yolu uygulamaktır hook_user_presave():

function MYMODULE_user_presave(&$edit, $account, $category) {
  // Don't show message for registering users.
  if (isset($account->is_new) && $account->is_new) {
    return;
  }

  if (!empty($edit['pass']) && $account->pass != $edit['pass']) {
    // Password has been changed.
  }
}

Muhtemelen bunu da yapabilirsiniz hook_user_update(), ama daha önce denemedim. Yukarıdakiler canlı bir projeden alınır ve mükemmel çalışır.


1

Kurallar'ı zaten kullandığınız için kullanmak daha kolay olabilir, ancak PHP Filtre modülünü etkinleştirmeniz gerekir .

Talimatları aşağıdaki gibi:

  1. PHP Filtre modülünü etkinleştir admin/modules
  2. Yeni bir Kural oluşturun admin/config/workflow/rules
  3. After updating an existing user accountOlay açılır listesinden tepki ver'i seçtiğinizden emin olun .
  4. Bir koşul ekleyin ve seçin Execute custom PHP code
  5. Değer bölümüne aşağıdaki PHP özel kodunu ekleyin

    if(!empty($account->current_pass)) { return true; }

  6. Ardından bir işlem ekleyin ve Send mail

  7. Değer bölümünde [account:mail]konu alanını ve mesaj alanını ekleyin ve doldurun.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.