bsomeshwer /
firewall
| 1 | <?php |
||||||
| 2 | |||||||
| 3 | namespace Someshwer\Firewall\src\Repo; |
||||||
| 4 | |||||||
| 5 | use Carbon\Carbon; |
||||||
|
0 ignored issues
–
show
|
|||||||
| 6 | use Illuminate\Support\Facades\Validator; |
||||||
|
0 ignored issues
–
show
The type
Illuminate\Support\Facades\Validator was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths Loading history...
|
|||||||
| 7 | use Someshwer\Firewall\src\Entities\ExceptionLog; |
||||||
| 8 | use Someshwer\Firewall\src\Entities\FirewallLog; |
||||||
| 9 | use Someshwer\Firewall\src\Entities\FirewallRequestsLogModel; |
||||||
| 10 | |||||||
| 11 | /** |
||||||
| 12 | * @author Someshwer |
||||||
| 13 | * Date: 15-08-2018 |
||||||
| 14 | */ |
||||||
| 15 | class FirewallRepository |
||||||
| 16 | { |
||||||
| 17 | /** |
||||||
| 18 | * Prepares list with white, black, accept, and reject ips. |
||||||
| 19 | * |
||||||
| 20 | * @param $item |
||||||
| 21 | * @param $list_type |
||||||
| 22 | * |
||||||
| 23 | * @return array |
||||||
| 24 | */ |
||||||
| 25 | private function prepareList($item, $list_type) |
||||||
| 26 | { |
||||||
| 27 | $record = [ |
||||||
| 28 | 'ip_address' => $item, |
||||||
| 29 | 'in_whitelist' => false, |
||||||
| 30 | 'in_blacklist' => false, |
||||||
| 31 | 'in_accept_list' => false, |
||||||
| 32 | 'in_reject_list' => false, |
||||||
| 33 | ]; |
||||||
| 34 | if ($list_type == 'white') { |
||||||
| 35 | $record['in_whitelist'] = true; |
||||||
| 36 | } |
||||||
| 37 | if ($list_type == 'black') { |
||||||
| 38 | $record['in_blacklist'] = true; |
||||||
| 39 | } |
||||||
| 40 | if ($list_type == 'accept') { |
||||||
| 41 | $record['in_accept_list'] = true; |
||||||
| 42 | } |
||||||
| 43 | if ($list_type == 'reject') { |
||||||
| 44 | $record['in_reject_list'] = true; |
||||||
| 45 | } |
||||||
| 46 | if ($list_type == 'common') { |
||||||
| 47 | $record['in_whitelist'] = true; |
||||||
| 48 | $record['in_blacklist'] = true; |
||||||
| 49 | $record['in_accept_list'] = true; |
||||||
| 50 | $record['in_reject_list'] = true; |
||||||
| 51 | } |
||||||
| 52 | |||||||
| 53 | return $record; |
||||||
| 54 | } |
||||||
| 55 | |||||||
| 56 | /** |
||||||
| 57 | * Fetches list with white, black, accept, and reject ips. |
||||||
| 58 | * |
||||||
| 59 | * @param $list |
||||||
| 60 | * @param $flag |
||||||
| 61 | * @param $list_type |
||||||
| 62 | * |
||||||
| 63 | * @return array |
||||||
| 64 | */ |
||||||
| 65 | public function getList($list, $flag, $list_type) |
||||||
| 66 | { |
||||||
| 67 | $result_list = []; |
||||||
| 68 | foreach ($list as $item) { |
||||||
| 69 | if ($flag == 2) { |
||||||
| 70 | $set = $this->prepareList($item, $list_type); |
||||||
| 71 | if (($list_type == 'white') || $list_type == 'black') { |
||||||
| 72 | $result_list[] = array_except($set, ['in_accept_list', 'in_reject_list']); |
||||||
|
0 ignored issues
–
show
The function
array_except was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 73 | } else { |
||||||
| 74 | $result_list[] = array_except($set, ['in_whitelist', 'in_blacklist']); |
||||||
| 75 | } |
||||||
| 76 | } |
||||||
| 77 | if ($flag == 4) { |
||||||
| 78 | $result_list[] = $this->prepareList($item, $list_type); |
||||||
| 79 | } |
||||||
| 80 | } |
||||||
| 81 | |||||||
| 82 | return $result_list; |
||||||
| 83 | } |
||||||
| 84 | |||||||
| 85 | /** |
||||||
| 86 | * Get log instance based on type. |
||||||
| 87 | * |
||||||
| 88 | * @param null $log_type |
||||||
|
0 ignored issues
–
show
|
|||||||
| 89 | * |
||||||
| 90 | * @return ExceptionLog|FirewallLog|FirewallRequestsLogModel |
||||||
| 91 | */ |
||||||
| 92 | public function getLogInstance($log_type = null) |
||||||
| 93 | { |
||||||
| 94 | if ($log_type == 'request_log') { |
||||||
| 95 | return $request_log = new FirewallRequestsLogModel(); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 96 | } |
||||||
| 97 | if ($log_type == 'exception_log') { |
||||||
| 98 | return $request_log = new ExceptionLog(); |
||||||
| 99 | } |
||||||
| 100 | |||||||
| 101 | return $log = new FirewallLog(); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 102 | } |
||||||
| 103 | |||||||
| 104 | /** |
||||||
| 105 | * Validating dates and dates must be in Y-m-d format. |
||||||
| 106 | * |
||||||
| 107 | * @param $from_date |
||||||
| 108 | * @param $to_date |
||||||
| 109 | * |
||||||
| 110 | * @return bool |
||||||
| 111 | */ |
||||||
| 112 | public function validateDates($from_date, $to_date) |
||||||
| 113 | { |
||||||
| 114 | $validation = Validator::make([ |
||||||
| 115 | 'from_date' => $from_date, |
||||||
| 116 | 'to_date' => $to_date, |
||||||
| 117 | ], [ |
||||||
| 118 | 'from_date' => 'date_format:Y-m-d', |
||||||
| 119 | 'to_date' => 'date_format:Y-m-d|after:from_date', |
||||||
| 120 | ]); |
||||||
| 121 | |||||||
| 122 | return $validation->fails(); |
||||||
| 123 | } |
||||||
| 124 | |||||||
| 125 | /** |
||||||
| 126 | * Add where clause to a query if dates are present |
||||||
| 127 | * in specified format i.e.; Y-m-d. |
||||||
| 128 | * |
||||||
| 129 | * @param $log |
||||||
| 130 | * @param $from_date |
||||||
| 131 | * @param $to_date |
||||||
| 132 | * |
||||||
| 133 | * @return mixed |
||||||
| 134 | */ |
||||||
| 135 | public function addWhereBetweenClause($log, $from_date, $to_date) |
||||||
| 136 | { |
||||||
| 137 | // $from = Carbon::createFromFormat('Y-m-d', $from_date)->format('Y-m-d'); |
||||||
| 138 | // $to = Carbon::createFromFormat('Y-m-d', $to_date)->format('Y-m-d'); |
||||||
| 139 | return $log->whereDate('created_at', '>=', $from_date)->whereDate('created_at', '<=', $to_date); |
||||||
| 140 | } |
||||||
| 141 | |||||||
| 142 | /** |
||||||
| 143 | * Adding pagination if config option for pagination is enabled. |
||||||
| 144 | * |
||||||
| 145 | * @param $log |
||||||
| 146 | * @param null $log_type |
||||||
|
0 ignored issues
–
show
|
|||||||
| 147 | * |
||||||
| 148 | * @return mixed |
||||||
| 149 | */ |
||||||
| 150 | public function addPagination($log, $log_type = null) |
||||||
| 151 | { |
||||||
| 152 | if ($log_type == 'request_log') { |
||||||
| 153 | $is_pagination = config('firewall.firewall_requests_log_pagination.enabled'); |
||||||
|
0 ignored issues
–
show
The function
config was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 154 | $records_per_page = config('firewall.firewall_requests_log_pagination.per_page'); |
||||||
| 155 | } elseif ($log_type == 'exception_log') { |
||||||
| 156 | $is_pagination = config('firewall.exception_log_pagination.enabled'); |
||||||
| 157 | $records_per_page = config('firewall.exception_log_pagination.per_page'); |
||||||
| 158 | } else { |
||||||
| 159 | $is_pagination = config('firewall.firewall_log_pagination.enabled'); |
||||||
| 160 | $records_per_page = config('firewall.firewall_log_pagination.per_page'); |
||||||
| 161 | } |
||||||
| 162 | |||||||
| 163 | return $is_pagination ? $log->paginate($records_per_page) : $log->get(); |
||||||
| 164 | } |
||||||
| 165 | |||||||
| 166 | /** |
||||||
| 167 | * Fetches unique ip addresses. |
||||||
| 168 | * |
||||||
| 169 | * @return array |
||||||
| 170 | */ |
||||||
| 171 | public function getUniqueIpAddresses() |
||||||
| 172 | { |
||||||
| 173 | $ip_addresses = array_merge_recursive( |
||||||
| 174 | config('firewall.whitelist'), |
||||||
|
0 ignored issues
–
show
The function
config was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 175 | config('firewall.blacklist'), |
||||||
| 176 | config('firewall.accept'), |
||||||
| 177 | config('firewall.reject') |
||||||
| 178 | ); |
||||||
| 179 | $unique_ip_addresses = array_unique($ip_addresses); |
||||||
| 180 | |||||||
| 181 | return $unique_ip_addresses; |
||||||
| 182 | } |
||||||
| 183 | |||||||
| 184 | /** |
||||||
| 185 | * Initializes ip status list with default values. |
||||||
| 186 | * |
||||||
| 187 | * @param $ip_address |
||||||
| 188 | * |
||||||
| 189 | * @return array |
||||||
| 190 | */ |
||||||
| 191 | private function initializeIpStatusList($ip_address) |
||||||
| 192 | { |
||||||
| 193 | $ip_statuses = [ |
||||||
| 194 | 'ip_address' => $ip_address, |
||||||
| 195 | 'in_whitelist' => false, |
||||||
| 196 | 'in_blacklist' => false, |
||||||
| 197 | 'in_accept_list' => false, |
||||||
| 198 | 'in_reject_list' => false, |
||||||
| 199 | ]; |
||||||
| 200 | |||||||
| 201 | return $ip_statuses; |
||||||
| 202 | } |
||||||
| 203 | |||||||
| 204 | /** |
||||||
| 205 | * Fetches the statuses for ip addresses. |
||||||
| 206 | * |
||||||
| 207 | * @param $ip_address |
||||||
| 208 | * |
||||||
| 209 | * @return array |
||||||
| 210 | */ |
||||||
| 211 | public function getIpStatus($ip_address) |
||||||
| 212 | { |
||||||
| 213 | $initialized_list = $this->initializeIpStatusList($ip_address); |
||||||
| 214 | if (in_array($ip_address, config('firewall.whitelist'))) { |
||||||
|
0 ignored issues
–
show
The function
config was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 215 | $initialized_list['in_whitelist'] = true; |
||||||
| 216 | } |
||||||
| 217 | if (in_array($ip_address, config('firewall.blacklist'))) { |
||||||
| 218 | $initialized_list['in_blacklist'] = true; |
||||||
| 219 | } |
||||||
| 220 | if (in_array($ip_address, config('firewall.accept'))) { |
||||||
| 221 | $initialized_list['in_accept_list'] = true; |
||||||
| 222 | } |
||||||
| 223 | if (in_array($ip_address, config('firewall.reject'))) { |
||||||
| 224 | $initialized_list['in_reject_list'] = true; |
||||||
| 225 | } |
||||||
| 226 | |||||||
| 227 | return $initialized_list; |
||||||
| 228 | } |
||||||
| 229 | } |
||||||
| 230 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths