MINOR Moved member logged in check from MemberLoginFrom to a static function Member

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.3@75044 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sean Harvey 2009-04-23 10:08:58 +00:00 committed by Sam Minnee
parent ced037f6a6
commit 756735b1ad
2 changed files with 18 additions and 10 deletions

View File

@ -240,6 +240,23 @@ class Member extends DataObject {
$this->extend('memberLoggedIn');
}
/**
* Check if the member ID logged in session actually
* has a database record of the same ID. If there is
* no logged in user, FALSE is returned anyway.
*
* @return boolean TRUE record found FALSE no record found
*/
static function logged_in_session_exists() {
if($id = Member::currentUserID()) {
if($member = DataObject::get_by_id('Member', $id)) {
if($member->exists()) return true;
}
}
return false;
}
/**
* Log the user in if the "remember login" cookie is set
*

View File

@ -43,16 +43,7 @@ class MemberLoginForm extends LoginForm {
$backURL = Session::get('BackURL');
}
// We assume if session is storing a member ID, that member exists in the DB
$sessMemberExistsInDB = true;
if($sessionMemberID = Member::currentUserID()) {
$sessMemberInDB = DataObject::get_by_id('Member', $sessionMemberID);
if(!($sessMemberInDB && $sessMemberInDB->exists())) {
$sessMemberExistsInDB = false;
}
}
if($checkCurrentUser && Member::currentUserID() && $sessMemberExistsInDB) {
if($checkCurrentUser && Member::currentUserID() && Member::logged_in_session_exists()) {
$fields = new FieldSet(
new HiddenField("AuthenticationMethod", null, $this->authenticator_class, $this)
);