aboutsummaryrefslogtreecommitdiff
path: root/Psso/Challenge/Username.php
blob: c8fa762731098c36067746ad285e25956968d139 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
namespace Psso\Challenge;
use Psso\{Challenge, AuthProvider, AuthInterface, ChallengeResult, Input};

/** Just asks for a username and sets it in the context. Always succeeds. */
class Username extends Challenge {
    public function getInputs(): array {
        return [new Input('user', Input::TEXT, 'challenge.input.username')];
    }

    public function validate(
        AuthProvider $provider, array $inputData
    ): ChallengeResult {
        $success = true;
        $message = null;
        if ($provider instanceof AuthInterface\UserExists) {
            $success = $provider->userExists($inputData['user']);
            if (!$success) $message = 'challenge.message.wrong-username';
        }
        return new ChallengeResult(
            self::class, $success, $inputData['user'], $message
        );
    }
}