Completed
Push — master ( 790a9f...0a6d1e )
by Janis
04:03
created

UserHooks::register()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 4
cts 4
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 0
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
18
19
/**
20
 * Class UserHooks
21
 * 
22
 * @package OCA\Ocr\Hooks
23
 */
24
class UserHooks {
25
26
    /**
27
     *
28
     * @var IUserManager
29
     */
30
    private $userManager;
31
32
    /**
33
     *
34
     * @var OcrJobMapper
35
     */
36
    private $ocrJobMapper;
37
38
    /**
39
     *
40
     * @var ILogger
41
     */
42
    private $logger;
43
44 2
    public function __construct(IUserManager $userManager, OcrJobMapper $ocrJobMapper, ILogger $logger) {
45 2
        $this->userManager = $userManager;
46 2
        $this->ocrJobMapper = $ocrJobMapper;
47 2
        $this->logger = $logger;
48 2
    }
49
50
    /**
51
     * Registers the user hooks.
52
     */
53
    public function register() {
54 1
        $postDelete = function ($user) {
55
            $this->logger->debug('Deleting all jobs for user "{user}" after user deletion (Hook).', [
56
                    'user' => $user->getUID()
57
            ]);
58
            $this->ocrJobMapper->deleteAllForUser($user->getUID());
59 1
        };
60 1
        $this->userManager->listen('\OC\User', 'postDelete', $postDelete);
61
    }
62
}