FileStorageAccess::logFileAccess()   A
last analyzed

Complexity

Conditions 3
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 11
rs 10
cc 3
nc 1
nop 3
1
<?php
2
3
namespace Epesi\FileStorage;
4
5
use Illuminate\Support\Facades\Auth;
6
7
class FileStorageAccess
8
{
9
    public function handle($request, \Closure $next)
10
    {
11
    	foreach (Integration\Joints\FileStorageAccessJoint::collect() as $joint) {
12
    		if ($joint->accessGranted($request)) {    			
13
    			$this->logFileAccess($request->get('id'), $request->get('action', 'download'));
14
    			
15
    			return $next($request);
16
    		}
17
    	}
18
    	
19
    	return response('No access to file', 401);
20
    }
21
        
22
    protected function logFileAccess($fileId, $action, $time = null)
23
    {
24
    	$ip_address = request()->ip();
25
26
    	Models\FileAccessLog::create()->insert([
27
    			'file_id' => $fileId,
28
    			'accessed_at' => date('Y-m-d H:i:s', $time ?: time()),
29
    			'accessed_by' => Auth::id() ?: 0,
30
    			'action' => $action,
31
    			'ip_address' => $ip_address,
32
    			'host_name' => gethostbyaddr($ip_address)
33
    	]);
34
    }
35
}
36