Completed
Push — authenticator-refactor ( 7dc887...371abb )
by Simon
06:49
created

CMSMemberAuthenticator::getLoginHandler()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\Security\MemberAuthenticator;
4
5
use SilverStripe\Security\Authenticator as BaseAuthenticator;
6
use SilverStripe\Security\Member;
7
8
class CMSMemberAuthenticator extends MemberAuthenticator
9
{
10
11
    public function supportedServices()
12
    {
13
        return BaseAuthenticator::CMS_LOGIN;
14
    }
15
16
    /**
17
     * @param array $data
18
     * @param ValidationResult $result
19
     * @param Member|null $member
20
     * @return Member
21
     */
22
    protected function authenticateMember($data, &$result, $member = null)
23
    {
24
        // Attempt to identify by temporary ID
25
        if (!empty($data['tempid'])) {
26
            // Find user by tempid, in case they are re-validating an existing session
27
            $member = Member::member_from_tempid($data['tempid']);
28
            if ($member) {
29
                $data['email'] = $member->Email;
30
            }
31
        }
32
33
        return parent::authenticateMember($data, $result, $member);
34
    }
35
36
    /**
37
     * @param string $link
38
     * @return CMSLoginHandler
39
     */
40
    public function getLoginHandler($link)
41
    {
42
        return CMSLoginHandler::create($link, $this);
43
    }
44
}
45