? password_policy_activation_mail_2.patch
Index: password_policy.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/password_policy/password_policy.module,v
retrieving revision 1.28
diff -u -p -r1.28 password_policy.module
--- password_policy.module	14 Apr 2010 16:47:25 -0000	1.28
+++ password_policy.module	14 Apr 2010 18:42:11 -0000
@@ -265,6 +265,10 @@ function password_policy_user($op, &$edi
       if ($account->force_password_change) {
         db_query('UPDATE {password_policy_force_change} SET force_change = 0 WHERE uid = %d', $account->uid);
       }
+      if ($account->status == 0 && isset($edit['status']) && $edit['status'] == 1 && user_access('unblock expired accounts')) {
+        // Account is beeing unblocked.
+        db_query('UPDATE {password_policy_expiration} SET unblocked = %d WHERE uid = %d', time(), $account->uid);
+      }
       break;
 
     case "login":
@@ -322,13 +326,6 @@ function password_policy_user($op, &$edi
       db_query("DELETE FROM {password_policy_expiration} WHERE uid = %d", $account->uid);
       db_query("DELETE FROM {password_policy_force_change} WHERE uid = %d", $account->uid);
       break;
-
-    case "submit":
-      if ($account->status == 0 && isset($edit['status']) && $edit['status'] == 1 && user_access('unblock expired accounts')) {
-        // Account is beeing unblocked.
-        _password_policy_unblock($account);
-      }
-      break;
   }
 }
 
@@ -833,10 +830,10 @@ function _password_policy_block_account(
  *   User pbject.
  */
 function _password_policy_unblock($account) {
-  // Unblock the user
-  db_query("UPDATE {users} SET status = '1' WHERE uid = %d", $account->uid);
-  db_query("UPDATE {password_policy_expiration} SET unblocked = %d WHERE uid = %d", time(), $account->uid);
+  // Unblock the user.
+  user_save($account, array('status' => 1));
 
+  // Send password reset mail.
   $message = drupal_mail('user', 'password_reset', $account->mail, user_preferred_language($account), array('account' => $account, 'login_url' => user_pass_reset_url($account)));
   if ($message['result']) {
     watchdog('password_policy', 'Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
