Completed
Push — phpunit ( 3f2bb3...9c5321 )
by Marcos
10:59 queued 02:54
created

SharingACLMapper   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 66
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A createACLEntry() 0 3 1
A getVaultEntries() 0 4 1
A getItemACL() 0 12 2
A updateCredentialACL() 0 3 1
A getCredentialAclList() 0 4 1
A deleteShareACL() 0 3 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: wolfi
5
 * Date: 24/09/16
6
 * Time: 14:20
7
 * This file is part of passman, licensed under AGPLv3
8
 */
9
10
namespace OCA\Passman\Db;
11
12
13
use OCP\AppFramework\Db\Mapper;
14
use OCP\IDBConnection;
15
use OCP\IUser;
16
use OCA\Passman\Utility\Utils;
17
18
class SharingACLMapper extends Mapper {
19
    const TABLE_NAME = '*PREFIX*passman_sharing_acl';
20
21
    public function __construct(IDBConnection $db) {
22
        parent::__construct($db, 'passman_sharing_acl');
23
    }
24
25
    public function createACLEntry(SharingACL $acl){
26
        return $this->insert($acl);
27
    }
28
29
    /**
30
     * Gets the currently accepted share requests from the given user for the given vault guid
31
     * @param $user_id
32
     * @param $vault_id
33
     * @return SharingACL[]
34
     */
35
    public function getVaultEntries($user_id, $vault_id) {
36
        $q = "SELECT * FROM ". self::TABLE_NAME ." WHERE user_id = ? AND vault_guid = ?";
37
        return $this->findEntities($q, [$user_id, $vault_id]);
38
    }
39
40
    /**
41
     * Gets the acl for a given item guid
42
     * @param $user_id
43
     * @param $item_guid
44
     * @return SharingACL
45
     */
46
    public function getItemACL($user_id, $item_guid) {
47
        $q = "SELECT * FROM " . self::TABLE_NAME . " WHERE item_guid = ? AND ";
48
        $filter = [$item_guid];
49
        if ($user_id === null){
50
            $q .= 'user_id is null';
51
        }
52
        else {
53
            $q .= 'user_id = ? ';
54
            $filter[] = $user_id;
55
        }
56
        return $this->findEntity($q, $filter);
57
    }
58
59
    /**
60
     * Update the acl for a given item guid
61
     * @param $user_id
62
     * @param $item_guid
63
     * @return SharingACL
64
     */
65
    public function updateCredentialACL(SharingACL $sharingACL) {
66
        return $this->update($sharingACL);
67
    }
68
69
    /**
70
     * Gets the currently accepted share requests from the given user for the given vault guid
71
     * @param $user_id
72
     * @param $vault_id
73
     * @return SharingACL[]
74
     */
75
    public function getCredentialAclList($item_guid) {
76
        $q = "SELECT * FROM ". self::TABLE_NAME ." WHERE item_guid = ?";
77
        return $this->findEntities($q, [$item_guid]);
78
    }
79
80
    public function deleteShareACL(SharingACL $ACL){
81
    	return $this->delete($ACL);
82
	}
83
}