Blame view

app/Http/Middleware/ApiCompany.php 908 Bytes
b7c7a5f6   Alexey Boroda   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  <?php
  
  namespace App\Http\Middleware;
  
  use Closure;
  
  class ApiCompany
  {
      /**
       * Handle an incoming request.
       *
       * @param  \Illuminate\Http\Request  $request
       * @param  \Closure  $next
       * @return mixed
       */
      public function handle($request, Closure $next)
      {
          $company_id = $request->get('company_id');
  
          if (empty($company_id)) {
              return $next($request);
          }
  
          // Check if user can access company
          $companies = app('Dingo\Api\Auth\Auth')->user()->companies()->pluck('id')->toArray();
          if (!in_array($company_id, $companies)) {
              return $next($request);
          }
  
          // Set company id
          session(['company_id' => $company_id]);
  
          // Set the company settings
          setting()->setExtraColumns(['company_id' => $company_id]);
          setting()->load(true);
  
          return $next($request);
      }
  
  }