Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PlanetRed
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Digital Experience Group
PlanetRed
Commits
c88851e8
Commit
c88851e8
authored
15 years ago
by
Eric Rasmussen
Browse files
Options
Downloads
Patches
Plain Diff
update our login action for elgg 1.7; add needed username param to first time login forward
parent
e25636e9
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
plugins/cas_auth_unl/actions/login.php
+89
-106
89 additions, 106 deletions
plugins/cas_auth_unl/actions/login.php
with
89 additions
and
106 deletions
plugins/cas_auth_unl/actions/login.php
+
89
−
106
View file @
c88851e8
<?php
/**
* Elgg UNL CAS authentication login action
*
* @package cas_auth_unl
* @license BSD http://www1.unl.edu/wdn/wiki/Software_License
* @author University of Nebraska-Lincoln
* @copyright 2010 Regents of the University of Nebraska
* @link http://www.unl.edu/
*
* Builds upon the original login action at elgg/actions/login.php by Curverider Ltd
*
*/
// Safety first
action_gatekeeper
();
// Get $_GET inputs
$username
=
get_input
(
'username'
);
$password
=
get_input
(
"password"
);
$persistent
=
get_input
(
"persistent"
,
false
);
$usecas
=
get_input
(
'usecas'
);
//this is available once they have given their email
$email
=
get_input
(
'email'
);
//look for view=mobile
$view
=
get_input
(
'view'
);
// 1. Do the regular elgg login if username and password are set
$result
=
false
;
if
(
!
empty
(
$username
)
&&
!
empty
(
$password
))
{
if
(
$user
=
authenticate
(
$username
,
$password
))
{
$result
=
login
(
$user
,
$persistent
);
}
}
/**
* Elgg UNL CAS authentication login action
*
* @package cas_auth_unl
* @license BSD http://www1.unl.edu/wdn/wiki/Software_License
* @author University of Nebraska-Lincoln
* @copyright 2010 Regents of the University of Nebraska
* @link http://www.unl.edu/
*
* Builds upon the original login action at elgg/actions/login.php by Curverider Ltd
*
*/
// Get $_GET inputs
$username
=
get_input
(
'username'
);
$password
=
get_input
(
"password"
);
$persistent
=
get_input
(
"persistent"
,
false
);
$usecas
=
get_input
(
'usecas'
);
//this is available once they have given their email
$email
=
get_input
(
'email'
);
//look for view=mobile
$view
=
get_input
(
'view'
);
// 2. Otherwise try CAS if that button was clicked
if
(
$usecas
==
'yes'
)
{
$casObject
=
new
elggSimpleCas
();
if
(
!
$casObject
->
checkCas
())
{
global
$CONFIG
;
$ts
=
time
();
$token
=
generate_action_token
(
$ts
);
SimpleCAS
::
setURL
(
$CONFIG
->
url
.
'action/login?usecas=yes&__elgg_ts='
.
$ts
.
'&__elgg_token='
.
$token
.
'&view='
.
$view
);
$casObject
->
forceCas
();
}
else
{
$cas_user
=
$casObject
->
getUserCas
();
if
(
$user
=
$casObject
->
casAuthenticate
(
$cas_user
,
$email
,
$view
))
{
$result
=
login
(
$user
);
if
(
$result
)
$_SESSION
[
'loggedInWithCas'
]
=
true
;
}
}
}
// 1. Do the regular elgg login if username and password are set
$result
=
false
;
if
(
!
empty
(
$username
)
&&
!
empty
(
$password
))
{
if
(
$user
=
authenticate
(
$username
,
$password
))
{
$result
=
login
(
$user
,
$persistent
);
}
}
// Set the system_message as appropriate
if
(
$result
)
{
system_message
(
elgg_echo
(
'loginok'
));
if
(
$_SESSION
[
'last_forward_from'
])
{
$forward_url
=
$_SESSION
[
'last_forward_from'
];
$_SESSION
[
'last_forward_from'
]
=
""
;
forward
(
$forward_url
);
}
else
{
if
(
(
isadminloggedin
())
&&
(
!
datalist_get
(
'first_admin_login'
))
)
{
system_message
(
elgg_echo
(
'firstadminlogininstructions'
));
datalist_set
(
'first_admin_login'
,
time
());
forward
(
'pg/admin/plugins'
);
}
else
{
$lastlogin_date
=
$_SESSION
[
'user'
]
->
last_login
;
if
(
!
$lastlogin_date
&&
$view
!=
'mobile'
)
forward
(
"mod/profile/edit.php?firstlogin=yes"
);
else
forward
(
"pg/dashboard/"
);
}
// 2. Otherwise try CAS if that button was clicked
if
(
$usecas
==
'yes'
)
{
$casObject
=
new
elggSimpleCas
();
if
(
!
$casObject
->
checkCas
())
{
global
$CONFIG
;
$ts
=
time
();
$token
=
generate_action_token
(
$ts
);
SimpleCAS
::
setURL
(
$CONFIG
->
url
.
'action/login?usecas=yes&__elgg_ts='
.
$ts
.
'&__elgg_token='
.
$token
.
'&view='
.
$view
);
$casObject
->
forceCas
();
}
else
{
$cas_user
=
$casObject
->
getUserCas
();
if
(
$user
=
$casObject
->
casAuthenticate
(
$cas_user
,
$email
,
$view
))
{
$result
=
login
(
$user
);
if
(
$result
)
$_SESSION
[
'loggedInWithCas'
]
=
true
;
}
}
}
// Set the system_message as appropriate
if
(
$result
)
{
system_message
(
elgg_echo
(
'loginok'
));
if
(
isset
(
$_SESSION
[
'last_forward_from'
])
&&
$_SESSION
[
'last_forward_from'
])
{
$forward_url
=
$_SESSION
[
'last_forward_from'
];
unset
(
$_SESSION
[
'last_forward_from'
]);
forward
(
$forward_url
);
}
else
{
if
(
(
isadminloggedin
())
&&
(
!
datalist_get
(
'first_admin_login'
)))
{
system_message
(
elgg_echo
(
'firstadminlogininstructions'
));
datalist_set
(
'first_admin_login'
,
time
());
forward
(
'pg/admin/plugins'
);
}
else
if
(
$_SESSION
[
'user'
]
->
last_login
==
'0'
&&
$view
!=
'mobile'
)
{
forward
(
'mod/profile/edit.php?username='
.
$_SESSION
[
'username'
]
.
'&firstlogin=yes'
);
}
else
if
(
get_input
(
'returntoreferer'
))
{
forward
(
$_SERVER
[
'HTTP_REFERER'
]);
}
else
{
forward
(
'pg/dashboard/'
);
}
}
}
else
{
$error_msg
=
elgg_echo
(
'loginerror'
);
// figure out why the login failed
if
(
!
empty
(
$username
)
&&
!
empty
(
$password
))
{
// See if it exists and is disabled
$access_status
=
access_get_show_hidden_status
();
access_show_hidden_entities
(
true
);
if
((
$user
=
get_user_by_username
(
$username
))
&&
!
$user
->
validated
)
{
// give plugins a chance to respond
if
(
!
trigger_plugin_hook
(
'unvalidated_login_attempt'
,
'user'
,
array
(
'entity'
=>
$user
)))
{
// if plugins have not registered an action, the default action is to
// trigger the validation event again and assume that the validation
// event will display an appropriate message
trigger_elgg_event
(
'validate'
,
'user'
,
$user
);
}
}
else
{
$error_msg
=
elgg_echo
(
'loginerror'
);
// figure out why the login failed
if
(
!
empty
(
$username
)
&&
!
empty
(
$password
))
{
// See if it exists and is disabled
$access_status
=
access_get_show_hidden_status
();
access_show_hidden_entities
(
true
);
if
((
$user
=
get_user_by_username
(
$username
))
&&
!
$user
->
validated
)
{
// give plugins a chance to respond
if
(
!
trigger_plugin_hook
(
'unvalidated_login_attempt'
,
'user'
,
array
(
'entity'
=>
$user
)))
{
// if plugins have not registered an action, the default action is to
// trigger the validation event again and assume that the validation
// event will display an appropriate message
trigger_elgg_event
(
'validate'
,
'user'
,
$user
);
}
}
else
{
register_error
(
elgg_echo
(
'loginerror'
));
}
access_show_hidden_entities
(
$access_status
);
}
else
{
register_error
(
elgg_echo
(
'loginerror'
));
}
register_error
(
elgg_echo
(
'loginerror'
));
}
?>
\ No newline at end of file
access_show_hidden_entities
(
$access_status
);
}
else
{
register_error
(
elgg_echo
(
'loginerror'
));
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment