- Added a simple Single Sign On mechanism.
- Added the SessionId macro.
This commit is contained in:
parent
f25553394e
commit
c9266c4588
4 changed files with 81 additions and 0 deletions
22
lib/WebGUI/Macro/SessionId.pm
Normal file
22
lib/WebGUI/Macro/SessionId.pm
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package WebGUI::Macro::SessionId;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use strict;
|
||||
|
||||
sub process {
|
||||
my $session = shift;
|
||||
return $session->getId;
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
|
@ -226,6 +226,8 @@ sub getOperations {
|
|||
'spectreGetSiteData' => 'WebGUI::Operation::Spectre',
|
||||
'spectreTest' => 'WebGUI::Operation::Spectre',
|
||||
|
||||
'ssoViaSessionId' => 'WebGUI::Operation::SSO',
|
||||
|
||||
'viewStatistics' => 'WebGUI::Operation::Statistics',
|
||||
|
||||
'makePrintable' => 'WebGUI::Operation::Style',
|
||||
|
|
|
|||
55
lib/WebGUI/Operation/SSO.pm
Normal file
55
lib/WebGUI/Operation/SSO.pm
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
package WebGUI::Operation::SSO;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Package WebGUI::Operation::Admin
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Operation handler for admin functions
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_switchOffAdmin ( )
|
||||
|
||||
If the current user is in the Turn On Admin Group, then allow them to turn off Admin mode
|
||||
via WebGUI::Session::Var::switchAdminOff()
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
sub www_ssoViaSessionId {
|
||||
my $session = shift;
|
||||
my $sessionId = $session->form->get("sessionId");
|
||||
if (defined $sessionId && $sessionId ne "") {
|
||||
if ($sessionId eq $session->getId) {
|
||||
# we're already the correct session
|
||||
}
|
||||
else {
|
||||
my ($userId) = $session->db->quickArray("select userId from userSession where sessionId=?",[$sessionId]);
|
||||
if (defined $userId && $userId ne "") {
|
||||
$session->var->end;
|
||||
$session->var->start($userId, $sessionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue