diff --git a/docs/upgrades/upgrade_7.9.6-7.9.7.pl b/docs/upgrades/upgrade_7.9.6-7.9.7.pl index 6cddd01af..919693099 100644 --- a/docs/upgrades/upgrade_7.9.6-7.9.7.pl +++ b/docs/upgrades/upgrade_7.9.6-7.9.7.pl @@ -59,6 +59,7 @@ sub addTwitterAuth { $session->config->addToArray( 'authMethods', 'Twitter' ); $session->config->addToHash( 'macros', "TwitterLogin" => "TwitterLogin" ); + $session->setting->set( 'twitterEnabled', 0 ); print "DONE!\n" unless $quiet; } diff --git a/lib/WebGUI/Auth/Twitter.pm b/lib/WebGUI/Auth/Twitter.pm index e23b8f8ac..a4ee46df5 100644 --- a/lib/WebGUI/Auth/Twitter.pm +++ b/lib/WebGUI/Auth/Twitter.pm @@ -19,6 +19,36 @@ sub createTwitterUser { return $user; } +sub editUserSettingsForm { + my $self = shift; + my $session = $self->session; + my ( $setting ) = $session->quick(qw( setting )); + + my $f = WebGUI::HTMLForm->new( $session ); + + $f->yesNo( + name => 'twitterEnabled', + value => $settings->get( 'twitterEnabled' ), + label => 'Enabled?', + hoverHelp => 'Enabled Twitter-based login', + ); + + return $f->printRowsOnly; +} + +sub editUserSettingsFormSave { + my $self = shift; + my $session = $self->session; + my ( $form, $setting ) = $session->quick(qw( form setting )); + + my @fields = qw( twitterEnabled ); + for my $field ( @fields ) { + $setting->set( $field, $form->get( $field ) ); + } + + return; +} + sub www_login { my ( $self ) = @_; my $session = $self->session; diff --git a/lib/WebGUI/Macro/TwitterLogin.pm b/lib/WebGUI/Macro/TwitterLogin.pm index 59b7068a3..d271e837f31 100644 --- a/lib/WebGUI/Macro/TwitterLogin.pm +++ b/lib/WebGUI/Macro/TwitterLogin.pm @@ -40,6 +40,7 @@ sub process { return "" unless any { $_ eq 'Twitter' } @{ $session->config->get( 'authMethods' ) }; return "" unless $session->user->isVisitor; + return "" unless $session->setting->get('twitterEnabled'); # Don't allow if twitter login is disabled my $loginUrl = $session->url->page('op=auth;authType=Twitter;method=login'); my $imgUrl = shift || $session->url->extras( 'twitter_login.png' );