UserHooks   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 70%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 40
ccs 7
cts 10
cp 0.7
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A register() 0 10 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
}