added: Two new approval activities, byLineage and byCommitterGroup
added: Show a message to users when they log in fixed: Gallery search form doesn't work right in IE6 fixed: Minor bug in new gallery approval handling
This commit is contained in:
parent
a0ec44567a
commit
614b37e31d
12 changed files with 515 additions and 32 deletions
|
|
@ -31,6 +31,10 @@ use WebGUI::Operation::Profile;
|
|||
use WebGUI::Workflow::Instance;
|
||||
use WebGUI::Inbox;
|
||||
|
||||
# Profile field name for the number of times the showMessageOnLogin has been
|
||||
# seen.
|
||||
my $LOGIN_MESSAGE_SEEN = 'showMessageOnLoginSeen';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Auth
|
||||
|
|
@ -296,16 +300,20 @@ sub createAccountSave {
|
|||
}
|
||||
|
||||
|
||||
# If we have a redirectAfterLogin, redirect the user
|
||||
if ($self->session->form->get('returnUrl')) {
|
||||
# If we have something to do after login, do it
|
||||
if ( $self->session->setting->get( 'showMessageOnLogin' ) ) {
|
||||
return $self->showMessageOnLogin;
|
||||
}
|
||||
elsif ($self->session->form->get('returnUrl')) {
|
||||
$self->session->http->setRedirect( $self->session->form->get('returnUrl') );
|
||||
$self->session->scratch->delete("redirectAfterLogin");
|
||||
}
|
||||
elsif ($self->session->scratch->get("redirectAfterLogin")) {
|
||||
my $url = $self->session->scratch->delete("redirectAfterLogin");
|
||||
$self->session->http->setRedirect($url);
|
||||
return undef;
|
||||
} else {
|
||||
return undef;
|
||||
}
|
||||
else {
|
||||
$self->session->http->setStatus(201,"Account Registration Successful");
|
||||
}
|
||||
|
||||
|
|
@ -694,16 +702,7 @@ sub login {
|
|||
$self->session->http->setRedirect($currentUrl);
|
||||
}
|
||||
|
||||
# Set the proper redirect
|
||||
if ($self->session->form->get('returnUrl')) {
|
||||
$self->session->http->setRedirect( $self->session->form->get('returnUrl') );
|
||||
$self->session->scratch->delete("redirectAfterLogin");
|
||||
}
|
||||
elsif ($self->session->scratch->get("redirectAfterLogin")) {
|
||||
$self->session->http->setRedirect($self->session->scratch->get("redirectAfterLogin"));
|
||||
$self->session->scratch->delete("redirectAfterLogin");
|
||||
}
|
||||
|
||||
# Run on login
|
||||
my $command = $self->session->config->get("runOnLogin");
|
||||
if ($command ne "") {
|
||||
WebGUI::Macro::process($self->session,\$command);
|
||||
|
|
@ -711,6 +710,23 @@ sub login {
|
|||
$self->session->errorHandler->warn($error) if $error;
|
||||
}
|
||||
|
||||
|
||||
# Set the proper redirect
|
||||
if ( $self->session->setting->get( 'showMessageOnLogin' )
|
||||
&& $self->user->profileField( $LOGIN_MESSAGE_SEEN )
|
||||
< $self->session->setting->get( 'showMessageOnLoginTimes' )
|
||||
) {
|
||||
return $self->showMessageOnLogin;
|
||||
}
|
||||
elsif ( $self->session->form->get('returnUrl') ) {
|
||||
$self->session->http->setRedirect( $self->session->form->get('returnUrl') );
|
||||
$self->session->scratch->delete("redirectAfterLogin");
|
||||
}
|
||||
elsif ( $self->session->scratch->get("redirectAfterLogin") ) {
|
||||
$self->session->http->setRedirect($self->session->scratch->get("redirectAfterLogin"));
|
||||
$self->session->scratch->delete("redirectAfterLogin");
|
||||
}
|
||||
|
||||
return undef;
|
||||
}
|
||||
|
||||
|
|
@ -774,7 +790,7 @@ sub new {
|
|||
$self->{profile} = ();
|
||||
$self->{warning} = "";
|
||||
my $call = shift;
|
||||
my @callable = ('init', @{$call});
|
||||
my @callable = ('init', 'showMessageOnLogin', @{$call});
|
||||
$self->{callable} = \@callable;
|
||||
bless $self, $class;
|
||||
return $self;
|
||||
|
|
@ -850,6 +866,45 @@ sub saveParams {
|
|||
}
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 showMessageOnLogin ( )
|
||||
|
||||
Show the requested message after the user logs in. Add another tally to the
|
||||
number of times the message has been displayed. Show a link to the next
|
||||
stage for the user.
|
||||
|
||||
=cut
|
||||
|
||||
sub showMessageOnLogin {
|
||||
my $self = shift;
|
||||
my $i18n = WebGUI::International->new( $self->session, 'Auth' );
|
||||
|
||||
# Increment the number of time seen.
|
||||
$self->user->profileField( $LOGIN_MESSAGE_SEEN,
|
||||
$self->user->profileField( $LOGIN_MESSAGE_SEEN ) + 1
|
||||
);
|
||||
|
||||
# Show the message, processing for macros
|
||||
my $output = $self->session->setting->get( 'showMessageOnLoginBody' );
|
||||
WebGUI::Macro::process( $self->session, \$output );
|
||||
|
||||
# Add the link to continue
|
||||
my $redirectUrl = $self->session->form->get( 'returnUrl' )
|
||||
|| $self->session->scratch->get( 'redirectAfterLogin' )
|
||||
|| $self->session->url->getSiteURL
|
||||
;
|
||||
|
||||
$output .= '<p><a href="' . $redirectUrl . '">' . $i18n->get( 'showMessageOnLogin return' )
|
||||
. '</a></p>'
|
||||
;
|
||||
|
||||
# No matter what, we won't be redirecting after this
|
||||
$self->session->scratch->delete( 'redirectAfterLogin' );
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 user ( [user] )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue