afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-07-11 10:40 am

[dw-free] clean up no_mail_alias console command

[commit: http://hg.dwscoalition.org/dw-free/rev/2d8af4871606]

http://bugs.dwscoalition.org/show_bug.cgi?id=1143

Refactor console setter & add db update to GUI setter

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/DW/Setting/EmailAlias.pm
  • cgi-bin/ljhooks.pl
--------------------------------------------------------------------------------
diff -r 83b16513deb0 -r 2d8af4871606 cgi-bin/DW/Setting/EmailAlias.pm
--- a/cgi-bin/DW/Setting/EmailAlias.pm	Sat Jul 11 16:07:50 2009 +0800
+++ b/cgi-bin/DW/Setting/EmailAlias.pm	Sat Jul 11 10:40:16 2009 +0000
@@ -56,6 +56,8 @@ sub save {
 
     my $val = $class->get_arg( $args, "emailalias" );
     $u->set_prop( "no_mail_alias" => ! $val );
+    # our selection value is the opposite of what no_mail_alias expects
+    $val ? $u->update_email_alias : $u->delete_email_alias;
 
     return 1;
 }
diff -r 83b16513deb0 -r 2d8af4871606 cgi-bin/ljhooks.pl
--- a/cgi-bin/ljhooks.pl	Sat Jul 11 16:07:50 2009 +0800
+++ b/cgi-bin/ljhooks.pl	Sat Jul 11 10:40:16 2009 +0000
@@ -207,16 +207,9 @@ register_setter("no_mail_alias", sub {
         return 0;
     }
 
-    my $dbh = LJ::get_db_writer();
-    if ($value) {
-        $dbh->do("DELETE FROM email_aliases WHERE alias=?", undef,
-                 "$u->{'user'}\@$LJ::USER_DOMAIN");
-    } elsif ($u->{'status'} eq "A" && LJ::get_cap($u, "useremail")) {
-        $dbh->do("REPLACE INTO email_aliases (alias, rcpt) VALUES (?,?)",
-                 undef, "$u->{'user'}\@$LJ::USER_DOMAIN", $u->email_raw);
-    }
+    $u->set_prop( "no_mail_alias", $value );
+    $value ? $u->delete_email_alias : $u->update_email_alias;
 
-    $u->set_prop("no_mail_alias", $value);
     return 1;
 });
 
--------------------------------------------------------------------------------