Completed
Push — master ( ca47f8...6ef91f )
by Joas
29:24 queued 36s
created
lib/private/Security/Bruteforce/Backend/DatabaseBackend.php 1 patch
Indentation   +104 added lines, -104 removed lines patch added patch discarded remove patch
@@ -11,108 +11,108 @@
 block discarded – undo
11 11
 use OCP\IDBConnection;
12 12
 
13 13
 class DatabaseBackend implements IBackend {
14
-	private const TABLE_NAME = 'bruteforce_attempts';
15
-
16
-	public function __construct(
17
-		private IDBConnection $db,
18
-	) {
19
-	}
20
-
21
-	/**
22
-	 * {@inheritDoc}
23
-	 */
24
-	public function getAttempts(
25
-		string $ipSubnet,
26
-		int $maxAgeTimestamp,
27
-		?string $action = null,
28
-		?array $metadata = null,
29
-	): int {
30
-		$query = $this->db->getQueryBuilder();
31
-		$query->select($query->func()->count('*', 'attempts'))
32
-			->from(self::TABLE_NAME)
33
-			->where($query->expr()->gt('occurred', $query->createNamedParameter($maxAgeTimestamp)))
34
-			->andWhere($query->expr()->eq('subnet', $query->createNamedParameter($ipSubnet)));
35
-
36
-		if ($action !== null) {
37
-			$query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
38
-
39
-			if ($metadata !== null) {
40
-				$trimmedMetaData = $this->trimMetaData($metadata);
41
-				$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
42
-			}
43
-		}
44
-
45
-		$result = $query->executeQuery();
46
-		$row = $result->fetch();
47
-		$result->closeCursor();
48
-
49
-		return (int)$row['attempts'];
50
-	}
51
-
52
-	/**
53
-	 * {@inheritDoc}
54
-	 */
55
-	public function resetAttempts(
56
-		string $ipSubnet,
57
-		?string $action = null,
58
-		?array $metadata = null,
59
-	): void {
60
-		$query = $this->db->getQueryBuilder();
61
-		$query->delete(self::TABLE_NAME)
62
-			->where($query->expr()->eq('subnet', $query->createNamedParameter($ipSubnet)));
63
-
64
-		if ($action !== null) {
65
-			$query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
66
-
67
-			if ($metadata !== null) {
68
-				$trimmedMetaData = $this->trimMetaData($metadata);
69
-				$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
70
-			}
71
-		}
72
-
73
-		$query->executeStatement();
74
-	}
75
-
76
-	/**
77
-	 * {@inheritDoc}
78
-	 */
79
-	public function registerAttempt(
80
-		string $ip,
81
-		string $ipSubnet,
82
-		int $timestamp,
83
-		string $action,
84
-		array $metadata = [],
85
-	): void {
86
-		$values = [
87
-			'ip' => $ip,
88
-			'subnet' => $ipSubnet,
89
-			'action' => $action,
90
-			'metadata' => $metadata,
91
-			'occurred' => $timestamp,
92
-		];
93
-
94
-		$qb = $this->db->getQueryBuilder();
95
-		$qb->insert(self::TABLE_NAME);
96
-		foreach ($values as $column => $value) {
97
-			if ($column === 'metadata') {
98
-				$value = $this->trimMetaData($value);
99
-			}
100
-			$qb->setValue($column, $qb->createNamedParameter($value));
101
-		}
102
-		$qb->executeStatement();
103
-	}
104
-
105
-	protected function trimMetaData(array $metadata): string {
106
-		try {
107
-			$data = json_encode($metadata, JSON_THROW_ON_ERROR);
108
-		} catch (\JsonException) {
109
-			$data = 'INVALID';
110
-		}
111
-
112
-		$trimmed = substr($data, 0, 254);
113
-		if ($trimmed !== $data) {
114
-			$trimmed .= '…';
115
-		}
116
-		return $trimmed;
117
-	}
14
+    private const TABLE_NAME = 'bruteforce_attempts';
15
+
16
+    public function __construct(
17
+        private IDBConnection $db,
18
+    ) {
19
+    }
20
+
21
+    /**
22
+     * {@inheritDoc}
23
+     */
24
+    public function getAttempts(
25
+        string $ipSubnet,
26
+        int $maxAgeTimestamp,
27
+        ?string $action = null,
28
+        ?array $metadata = null,
29
+    ): int {
30
+        $query = $this->db->getQueryBuilder();
31
+        $query->select($query->func()->count('*', 'attempts'))
32
+            ->from(self::TABLE_NAME)
33
+            ->where($query->expr()->gt('occurred', $query->createNamedParameter($maxAgeTimestamp)))
34
+            ->andWhere($query->expr()->eq('subnet', $query->createNamedParameter($ipSubnet)));
35
+
36
+        if ($action !== null) {
37
+            $query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
38
+
39
+            if ($metadata !== null) {
40
+                $trimmedMetaData = $this->trimMetaData($metadata);
41
+                $query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
42
+            }
43
+        }
44
+
45
+        $result = $query->executeQuery();
46
+        $row = $result->fetch();
47
+        $result->closeCursor();
48
+
49
+        return (int)$row['attempts'];
50
+    }
51
+
52
+    /**
53
+     * {@inheritDoc}
54
+     */
55
+    public function resetAttempts(
56
+        string $ipSubnet,
57
+        ?string $action = null,
58
+        ?array $metadata = null,
59
+    ): void {
60
+        $query = $this->db->getQueryBuilder();
61
+        $query->delete(self::TABLE_NAME)
62
+            ->where($query->expr()->eq('subnet', $query->createNamedParameter($ipSubnet)));
63
+
64
+        if ($action !== null) {
65
+            $query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
66
+
67
+            if ($metadata !== null) {
68
+                $trimmedMetaData = $this->trimMetaData($metadata);
69
+                $query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
70
+            }
71
+        }
72
+
73
+        $query->executeStatement();
74
+    }
75
+
76
+    /**
77
+     * {@inheritDoc}
78
+     */
79
+    public function registerAttempt(
80
+        string $ip,
81
+        string $ipSubnet,
82
+        int $timestamp,
83
+        string $action,
84
+        array $metadata = [],
85
+    ): void {
86
+        $values = [
87
+            'ip' => $ip,
88
+            'subnet' => $ipSubnet,
89
+            'action' => $action,
90
+            'metadata' => $metadata,
91
+            'occurred' => $timestamp,
92
+        ];
93
+
94
+        $qb = $this->db->getQueryBuilder();
95
+        $qb->insert(self::TABLE_NAME);
96
+        foreach ($values as $column => $value) {
97
+            if ($column === 'metadata') {
98
+                $value = $this->trimMetaData($value);
99
+            }
100
+            $qb->setValue($column, $qb->createNamedParameter($value));
101
+        }
102
+        $qb->executeStatement();
103
+    }
104
+
105
+    protected function trimMetaData(array $metadata): string {
106
+        try {
107
+            $data = json_encode($metadata, JSON_THROW_ON_ERROR);
108
+        } catch (\JsonException) {
109
+            $data = 'INVALID';
110
+        }
111
+
112
+        $trimmed = substr($data, 0, 254);
113
+        if ($trimmed !== $data) {
114
+            $trimmed .= '…';
115
+        }
116
+        return $trimmed;
117
+    }
118 118
 }
Please login to merge, or discard this patch.