Completed
Pull Request — master (#7007)
by Simon
08:19
created

CMSMemberAuthenticator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 5
lcom 0
cbo 3

3 Methods

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