UserHooks::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 5
ccs 5
cts 5
cp 1
rs 10
cc 1
nc 1
nop 3
crap 1
1
<?php
2
3
/**
4
 * Nextcloud - OCR
5
 * This file is licensed under the Affero General Public License version 3 or
6
 * later.
7
 * See the COPYING file.
8
 * 
9
 * @author Janis Koehr <[email protected]>
10
 * @copyright Janis Koehr 2017
11
 */
12
namespace OCA\Ocr\Hooks;
13
14
use OCP\IUserManager;
15
use OCA\Ocr\Db\OcrJobMapper;
16
use OCP\ILogger;
17
use OCA\Ocr\Constants\OcrConstants;
18
19
20
/**
21
 * Class UserHooks
22
 * 
23
 * @package OCA\Ocr\Hooks
24
 */
25
class UserHooks {
26
27
    /**
28
     *
29
     * @var IUserManager
30
     */
31
    private $userManager;
32
33
    /**
34
     *
35
     * @var OcrJobMapper
36
     */
37
    private $ocrJobMapper;
38
39
    /**
40
     *
41
     * @var ILogger
42
     */
43
    private $logger;
44
45 2
    public function __construct(IUserManager $userManager, OcrJobMapper $ocrJobMapper, ILogger $logger) {
46 2
        $this->userManager = $userManager;
47 2
        $this->ocrJobMapper = $ocrJobMapper;
48 2
        $this->logger = $logger;
49 2
    }
50
51
    /**
52
     * Registers the user hooks.
53
     */
54
    public function register() {
55 1
        $postDelete = function ($user) {
56
            $this->logger->debug('Deleting all jobs for user "{user}" after user deletion (Hook).', [
57
                    'user' => $user->getUID(),
58
                    'app' => OcrConstants::APP_NAME
59
            ]);
60
            $this->ocrJobMapper->deleteAllForUser($user->getUID());
61 1
        };
62
        $this->userManager->listen('\OC\User', 'postDelete', $postDelete);
63
    }
64
}