[dw-free] Migrate /settings settings to an Advanced Settings tab
[commit: http://hg.dwscoalition.org/dw-free/rev/2053cd34e3c2]
http://bugs.dwscoalition.org/show_bug.cgi?id=744
Remove some unused Settings modules, which aren't used in /manage/settings/
(some of these have the implementation in ljcom; some have an alternate
interface).
Patch by
denise.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=744
Remove some unused Settings modules, which aren't used in /manage/settings/
(some of these have the implementation in ljcom; some have an alternate
interface).
Patch by
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Files modified:
- cgi-bin/LJ/Setting/Email.pm
- cgi-bin/LJ/Setting/GraphicPreviews.pm
- cgi-bin/LJ/Setting/MangleEmail.pm
- cgi-bin/LJ/Setting/SMS.pm
- cgi-bin/LJ/Setting/SMSPostNotify.pm
- cgi-bin/LJ/Setting/WebpageURL.pm
-------------------------------------------------------------------------------- diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/Email.pm --- a/cgi-bin/LJ/Setting/Email.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -package LJ::Setting::Email; -use base 'LJ::Setting'; -use strict; -use warnings; - -sub tags { qw(email mail address) } - -sub save { - my ($class, $u, $args) = @_; - my $email = $args->email_raw; - return 1 if $email eq $u->email_raw; - - my @errors; - local $BML::ML_SCOPE = "/editinfo.bml"; - - if ($LJ::EMAIL_CHANGE_REQUIRES_PASSWORD) { - push @errors, "You cannot change your email address here."; - } else { - push @errors, $BML::ML{'.error.email.none'} - unless $email; - - push @errors, BML::ml(".error.email.lj_domain", { 'user' => $u->{'user'}, 'domain' => $LJ::USER_DOMAIN, }) - if ($LJ::USER_EMAIL and $email =~ /\@\Q$LJ::USER_DOMAIN\E$/i); - - push @errors, $BML::ML{'.error.email.no_space'} - if $email =~ /\s/; - } - - LJ::check_email($email, \@errors) unless @errors; - - return 1 unless @errors; - $class->errors(email => join(", ", @errors)); -} - -sub as_html { - my ($class, $u, $errs) = @_; - $errs ||= {}; - - my $disabled = 0; - if ($LJ::EMAIL_CHANGE_REQUIRES_PASSWORD) { - $disabled = 1; - } - - my $key = $class->pkgkey; - my $ret = "What's your email address? " . - LJ::html_text({ - name => "${key}email", - value => $u->email_raw, - size => 40, - disabled => $disabled, - }); - - if ($LJ::EMAIL_CHANGE_REQUIRES_PASSWORD) { - $ret .= "<p>$LJ::SITENAME requires that you change your email address over a secure connection, here: <a href='$LJ::SITEROOT/changeemail.bml'>change email</a>.</p>"; - } - - $ret .= $class->errdiv($errs, "email"); - return $ret; -} - -1; diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/GraphicPreviews.pm --- a/cgi-bin/LJ/Setting/GraphicPreviews.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -package LJ::Setting::GraphicPreviews; -use base 'LJ::Setting'; -use strict; -use warnings; - -sub should_render { - my ($class, $u) = @_; - - my $graphicpreviews_obj = LJ::graphicpreviews_obj(); - return $u && $graphicpreviews_obj->is_enabled($u) ? 1 : 0; -} - -sub helpurl { - my ($class, $u) = @_; - - return "graphic_previews"; -} - -sub label { - my $class = shift; - - return $class->ml('setting.graphicpreviews.label'); -} - -sub option { - my ($class, $u, $errs, $args) = @_; - my $key = $class->pkgkey; - - my $graphicpreviews_obj = LJ::graphicpreviews_obj(); - - my $ret = LJ::html_check({ - name => "${key}graphicpreviews", - id => "${key}graphicpreviews", - value => 1, - selected => $class->get_arg($args, "graphicpreviews") || $graphicpreviews_obj->should_render($u) ? 1 : 0, - }); - $ret .= " <label for='${key}graphicpreviews'>"; - $ret .= $u->is_community ? $class->ml('setting.graphicpreviews.option.comm') : $class->ml('setting.graphicpreviews.option.self'); - $ret .= "</label>"; - - return $ret; -} - -sub save { - my ($class, $u, $args) = @_; - - my $post_val = $class->get_arg($args, "graphicpreviews") ? "on" : "off"; - my $prop_val = $u->show_graphic_previews; - if ($post_val ne $prop_val) { - my $new_val = "explicit_$post_val"; - $u->set_prop('show_graphic_previews', $new_val); - } - - return 1; -} - -1; diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/MangleEmail.pm --- a/cgi-bin/LJ/Setting/MangleEmail.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -package LJ::Setting::MangleEmail; -use base 'LJ::Setting::BoolSetting'; -use strict; -use warnings; - -sub tags { qw(email hide obscure mangle spam) } - -sub label { - local $BML::ML_SCOPE = "/editinfo.bml"; - return $BML::ML{'.mangleaddress.header'}; -} - -sub des { - local $BML::ML_SCOPE = "/editinfo.bml"; - return $BML::ML{'.mangleaddress.about'}; -} - -sub user_field { "opt_mangleemail" } -sub checked_value { "Y" } -sub unchecked_value { "N" } - -1; - - - diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/SMS.pm --- a/cgi-bin/LJ/Setting/SMS.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -package LJ::Setting::SMS; -use base 'LJ::Setting'; -use strict; -use warnings; - -sub should_render { - my ($class, $u) = @_; - - return $u && !$u->is_community && $u->can_use_sms ? 1 : 0; -} - -sub helpurl { - my ($class, $u) = @_; - - return "sms_about"; -} - -sub label { - my $class = shift; - - return $LJ::SMS_TITLE; -} - -sub option { - my ($class, $u, $errs, $args) = @_; - my $key = $class->pkgkey; - - my $current_msisdn = $class->get_arg($args, "sms_phone") || $u->sms_mapped_number; - my ($area, $prefix, $num) = $current_msisdn =~ /\+1(\d{3})(\d{3})(\d{4})/ if $current_msisdn; - $current_msisdn = "$area-$prefix-$num" if $area && $prefix && $num; - - my $carrier = $class->get_arg($args, "sms_carrier") || $u->prop("sms_carrier"); - my @carriers; - if (%LJ::SMS_CARRIERS) { - my @keys = @LJ::SMS_CARRIER_ORDER ? @LJ::SMS_CARRIER_ORDER : keys %LJ::SMS_CARRIERS; - - foreach my $k (@keys) { - my $v = $LJ::SMS_CARRIERS{$k} or next; - $v .= '<super>®</super>' unless $k eq 'other'; - push @carriers, ($k, $v); - } - } - - my $ret .= "<p>" . $class->ml('setting.sms.option', { sitename => $LJ::SITENAMESHORT, aopts => "href='$LJ::SITEROOT/manage/sms/textcommands.bml'" }) . "</p>"; - - $ret .= "<table class='setting_table' cellspacing='5' cellpadding='0'>"; - - $ret .= "<tr><td class='setting_label'><label for='${key}sms_phone'>" . $class->ml('setting.sms.option.phone') . "</label></td>"; - $ret .= "<td>" . LJ::html_text({ - name => "${key}sms_phone", - id => "${key}sms_phone", - value => $current_msisdn || "", - }); - my $phone_errdiv = $class->errdiv($errs, "sms_phone"); - $ret .= "<br />$phone_errdiv" if $phone_errdiv; - $ret .= "</td></tr>"; - - $ret .= "<tr><td class='setting_label'><label for='${key}sms_carrier'>" . $class->ml('setting.sms.option.carrier') . "</label></td>"; - $ret .= "<td>" . LJ::html_select({ - name => "${key}sms_carrier", - id => "${key}sms_carrier", - selected => $carrier || "", - noescape => 1, - }, ("", $class->ml('setting.sms.option.carrier.selectone')), @carriers); - my $carrier_errdiv = $class->errdiv($errs, "sms_carrier"); - $ret .= "<br />$carrier_errdiv" if $carrier_errdiv; - $ret .= "</td></tr>"; - - $ret .= "<tr><td> </td>"; - $ret .= "<td><a href='$LJ::SITEROOT/manage/sms/'>" . $class->ml('setting.sms.option.advanced') . "</a></td></tr>"; - - $ret .= "</table>"; - - return $ret; -} - -sub save { - my ($class, $u, $args) = @_; - - my $phone_val = $class->get_arg($args, "sms_phone"); - my $carrier_val = $class->get_arg($args, "sms_carrier"); - - # set carrier - { - if (%LJ::SMS_CARRIERS && $carrier_val && grep { $_ eq $carrier_val } keys %LJ::SMS_CARRIERS) { - $u->set_prop( sms_carrier => $carrier_val ); - - # invalid carrier - } elsif ($carrier_val) { - $class->errors( sms_carrier => $class->ml('setting.sms.error.carrier.invalid') ); - - # clear carrier - } elsif (!$carrier_val && !$phone_val) { - $u->set_prop( sms_carrier => undef ); - } - } - - my $new_msisdn = $phone_val; - - # user posted but with blank msisdn, clear it if it's mapped - unless ($new_msisdn) { - $u->delete_sms_number; - $u->set_prop( sms_carrier => undef ); - } - - # strip out invalid characters - $new_msisdn =~ s/[^\+\d]//g if $new_msisdn; - - # normalize given number to actual msisdn for storage in db - if ($new_msisdn =~ /^\+?1?(\d{10})$/ && $1 !~ /^555/ && $u->prop("sms_carrier")) { - # strip off leading + and leading 1, then re-add to normalize - $new_msisdn =~ s/^\+//; - $new_msisdn =~ s/^1//; - - # keep around a stripped version of the new msisdn, but also - # make $new_msisdn a canonicalized version with +1 - my $new_msisdn_stripped = $new_msisdn; - $new_msisdn = "+1$new_msisdn"; - - # check for sysban on this msisdn - if (LJ::sysban_check("msisdn", $new_msisdn_stripped)) { - LJ::sysban_note($u->id, "Tried to register a banned MSISDN", { msisdn => $new_msisdn }); - $class->errors( sms_phone => $class->ml('setting.sms.error.phone.failed', { number => $new_msisdn }) ); - } - - # if user entered a number which doesn't match their current mapping... - if ($u->sms_mapped_number ne $new_msisdn) { - # in this instance we're looking to see if someone already has this - # number verified in order to check for number stealing below - my $existing_num_uid = LJ::SMS->num_to_uid($new_msisdn, verified_only => 1); - - # don't let them steal a number! - if ($existing_num_uid && $existing_num_uid != $u->id) { - $class->errors( sms_phone => $class->ml('setting.sms.error.phone.inuse') ); - - # check rate limiting - } elsif (!$u->rate_log("sms_register", 1)) { - $class->errors( sms_phone => $class->ml('setting.sms.error.phone.ratelimit') ); - - } else { - # map the number - $u->set_sms_number($new_msisdn, verified => 'N'); # not verified - - # run the post-reg hook - my @errors; - LJ::run_hook('sms_post_register', u => $u, errors => \@errors); - foreach my $err (@errors) { - $class->errors( sms_phone => $err ); - } - } - } - } elsif (!$u->prop("sms_carrier") && $phone_val) { - # tried to set number but no carrier set - $class->errors( sms_carrier => $class->ml('setting.sms.error.carrier.none') ); - } elsif ($phone_val) { - # user has not entered a valid number for registration - $class->errors( sms_phone => $class->ml('setting.sms.error.phone.invalid') ); - } - - LJ::run_hook('sms_bml_post', u => $u, POST => {}); - - return 1; -} - -1; diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/SMSPostNotify.pm --- a/cgi-bin/LJ/Setting/SMSPostNotify.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -package LJ::Setting::SMSPostNotify; -use base 'LJ::Setting::BoolSetting'; -use strict; -use warnings; -no warnings 'redefine'; - -sub tags { qw(sms post notify notification) } - -sub label { - return "Subscribe to SMS posts"; -} - -sub des { - return "When posting with SMS, automatically subscribe to comments via SMS"; -} - -sub is_selected { - my ($class, $u) = @_; - return $u->prop('sms_post_notify'); -} - -sub prop_name { "sms_post_notify" } -sub checked_value { "SMS" } -sub unchecked_value { "N" } - -1; diff -r c03ef3bb3c46 -r 2053cd34e3c2 cgi-bin/LJ/Setting/WebpageURL.pm --- a/cgi-bin/LJ/Setting/WebpageURL.pm Thu Jul 09 00:10:10 2009 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -package LJ::Setting::WebpageURL; -use base 'LJ::Setting::TextSetting'; -use strict; -use warnings; - -sub tags { qw(webpage homepage url) } - -sub prop_name { "url" } -sub text_size { 40 } -sub question { "Webpage URL:" } - -1; - - - --------------------------------------------------------------------------------