Completed
Pull Request — master (#115)
by Janis
04:24
created

UserHooks   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A register() 0 9 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
     * @codeCoverageIgnore
53
     */
54
    public function register() {
55
        $postDelete = function ($user) {
56
            $this->logger->debug('Deleting all jobs for user "{user}" after user deletion (Hook).', [
57
                    'user' => $user->getUID()
58
            ]);
59
            $this->ocrJobMapper->deleteAllForUser($user->getUID());
60
        };
61
        $this->userManager->listen('\OC\User', 'postDelete', $postDelete);
62
    }
63
}