/home/techb158/ileadtechnology.com/SSM/app/Repositories/utility
NameSizeModeActions
BackupRepository.php30680644editdlrm
EmailLogRepository.php25280644editdlrm
EmailTemplateRepository.php64610644editdlrm
IpFilterRepository.php58460644editdlrm
TodoRepository.php39290644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/app/Repositories/utility/IpFilterRepository.php (5846B)
ip_filter = $ip_filter; } /** * Get all ip filter * * @return User */ public function getAll() { return $this->ip_filter->all(); } /** * Count ip filter * * @return User */ public function count() { return $this->ip_filter->count(); } /** * Find ip filter with given id or throw an error. * * @param integer $id * @return IpFilter */ public function findOrFail($id) { $ip_filter = $this->ip_filter->findOrFail($id); if (! $ip_filter) { throw ValidationException::withMessages(['message' => trans('utility.could_not_find_ip_filter')]); } return $ip_filter; } /** * Find ip filter by Id * * @param integer $id * @return IpFilter */ public function invertFind($id) { return $this->ip_filter->where('id', '!=', $id)->get(); } /** * Paginate all ip filters using given params. * * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginate($params) { $sort_by = gv($params, 'sort_by', 'created_at'); $order = gv($params, 'order', 'desc'); $page_length = gv($params, 'page_length', config('config.page_length')); return $this->ip_filter->orderBy($sort_by, $order)->paginate($page_length); } /** * Create a new ip filter. * * @param array $params * @return IpFilter */ public function create($params) { return $this->ip_filter->forceCreate($this->formatParams($params)); } /** * Prepare given params for inserting into database. * * @param array $params * @param string $type * @return array */ private function formatParams($params, $action = 'create', $id = null) { $start_ip = gv($params, 'start_ip'); $end_ip = gv($params, 'end_ip'); $description = gv($params, 'description'); $validate = $this->validateIp(ip2long($start_ip), $end_ip ? ip2long($end_ip) : null, ($action === 'update' ? $id : null)); if ($validate['status'] === 'error') { throw ValidationException::withMessages($validate['message']); } $formatted = [ 'start_ip' => $start_ip, 'end_ip' => $end_ip, 'description' => $description ]; return $formatted; } /** * Update given ip filter. * * @param IpFilter $ip_filter * @param array $params * * @return IpFilter */ public function update(IpFilter $ip_filter, $params) { $ip_filter->forceFill($this->formatParams($params, 'update', $ip_filter->id))->save(); return $ip_filter; } /** * Delete ip filter. * * @param integer $id * @return bool|null */ public function delete(IpFilter $ip_filter) { return $ip_filter->delete(); } /** * Delete multiple ip filters. * * @param array $ids * @return bool|null */ public function deleteMultiple($ids) { return $this->ip_filter->whereIn('id', $ids)->delete(); } /** * Validate given Ip range. * * @param ip $start_ip * @param ip $end_ip * @param object $ip_filter * @param array $params * * @return response */ public function validateIp($start_ip, $end_ip, $id = null) { if ($end_ip && $start_ip > $end_ip) { $response = ['status' => 'error', 'message' => ['start_ip' => [trans('utility.invalid_ip_range')]]]; return $response; } $start_ip_same = 0; $start_ip_in_range = 0; $end_ip_in_range = 0; $other_ip_in_range = 0; if (!$id) { $ips = $this->getAll(); } else { $ips = $this->invertFind($id); } foreach ($ips as $ip) { $all_start_ip = ip2long($ip->start_ip); $all_end_ip = ($ip->end_ip) ? ip2long($ip->end_ip) : null; if ($all_start_ip === $start_ip) { $start_ip_same++; } elseif ($end_ip && !$all_end_ip && $start_ip <= $all_start_ip && $end_ip >= $all_start_ip) { $other_ip_in_range++; } elseif ($all_end_ip && $start_ip >= $all_start_ip && $start_ip <= $all_end_ip) { $start_ip_in_range++; } elseif ($end_ip && $end_ip >= $all_start_ip && $end_ip <= $all_end_ip) { $end_ip_in_range++; } elseif ($end_ip && $start_ip < $all_start_ip && $end_ip > $all_end_ip) { $other_ip_in_range++; } } if ($start_ip_same) { $response = ['status' => 'error', 'message' => ['start_ip' => [trans('utility.start_ip_same')]]]; } elseif ($start_ip_in_range) { $response = ['status' => 'error', 'message' => ['start_ip' => [trans('utility.start_ip_in_range')]]]; } elseif ($end_ip_in_range) { $response = ['status' => 'error', 'message' => ['end_ip' => [trans('utility.end_ip_in_range')]]]; } elseif ($other_ip_in_range) { $response = ['status' => 'error', 'message' => ['end_ip' => [trans('utility.other_ip_in_range')]]]; } else { $response = ['status' => 'success']; } return $response; } }