mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUGFIX: Performance improvement to Member::currentUserID()
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@84167 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
08844f66b0
commit
cd3db788a9
@ -264,6 +264,9 @@ class Member extends DataObject {
|
|||||||
* auto-login.
|
* auto-login.
|
||||||
*/
|
*/
|
||||||
static function autoLogin() {
|
static function autoLogin() {
|
||||||
|
// Don't bother trying this multiple times
|
||||||
|
self::$_already_tried_to_auto_log_in = true;
|
||||||
|
|
||||||
if(strpos(Cookie::get('alc_enc'), ':') && !Session::get("loggedInAs")) {
|
if(strpos(Cookie::get('alc_enc'), ':') && !Session::get("loggedInAs")) {
|
||||||
list($uid, $token) = explode(':', Cookie::get('alc_enc'), 2);
|
list($uid, $token) = explode(':', Cookie::get('alc_enc'), 2);
|
||||||
$SQL_uid = Convert::raw2sql($uid);
|
$SQL_uid = Convert::raw2sql($uid);
|
||||||
@ -411,12 +414,7 @@ class Member extends DataObject {
|
|||||||
* user or FALSE.
|
* user or FALSE.
|
||||||
*/
|
*/
|
||||||
static function currentUser() {
|
static function currentUser() {
|
||||||
$id = Session::get("loggedInAs");
|
$id = Member::currentUserID();
|
||||||
if(!$id) {
|
|
||||||
self::autoLogin();
|
|
||||||
$id = Session::get("loggedInAs");
|
|
||||||
}
|
|
||||||
|
|
||||||
if($id) {
|
if($id) {
|
||||||
return DataObject::get_one("Member", "\"Member\".\"ID\" = $id");
|
return DataObject::get_one("Member", "\"Member\".\"ID\" = $id");
|
||||||
}
|
}
|
||||||
@ -430,13 +428,14 @@ class Member extends DataObject {
|
|||||||
*/
|
*/
|
||||||
static function currentUserID() {
|
static function currentUserID() {
|
||||||
$id = Session::get("loggedInAs");
|
$id = Session::get("loggedInAs");
|
||||||
if(!$id) {
|
if(!$id && !self::$_already_tried_to_auto_log_in) {
|
||||||
self::autoLogin();
|
self::autoLogin();
|
||||||
$id = Session::get("loggedInAs");
|
$id = Session::get("loggedInAs");
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_numeric($id) ? $id : 0;
|
return is_numeric($id) ? $id : 0;
|
||||||
}
|
}
|
||||||
|
private static $_already_tried_to_auto_log_in = false;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user