Controller.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\AppSession;
  4. use App\Models\Note;
  5. use App\Models\NoteTemplate;
  6. use App\Models\Pro;
  7. use App\Models\ProProAccess;
  8. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  9. use Illuminate\Foundation\Bus\DispatchesJobs;
  10. use Illuminate\Foundation\Validation\ValidatesRequests;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Routing\Controller as BaseController;
  13. use Illuminate\Support\Facades\Cookie;
  14. class Controller extends BaseController
  15. {
  16. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  17. protected $performer = null;
  18. protected $pro = null;
  19. protected $pros = null;
  20. public function __construct()
  21. {
  22. $this->performer = get_current_session();
  23. if($this->performer && $this->performer->pro) {
  24. $this->pro = $this->performer->pro;
  25. view()->share('pro', $this->performer->pro);
  26. }
  27. view()->share('performer', $this->performer);
  28. $this->pros = Pro::all();
  29. if($this->pro && $this->pro->pro_type != 'ADMIN'){
  30. $accessiblePros = ProProAccess::where('owner_pro_id', $this->pro->id);
  31. $accessibleProIds = [];
  32. foreach($accessiblePros as $accessiblePro){
  33. $accessibleProIds[] = $accessiblePro->id;
  34. }
  35. $accessibleProIds[] = $this->pro->id;
  36. $this->pros = Pro::whereIn('id', $accessibleProIds)->get();
  37. }
  38. view()->share('pros',$this->pros);
  39. view()->share('notes', Note::all());
  40. $noteTemplates = NoteTemplate::all();
  41. view()->share('noteTemplates', $noteTemplates);
  42. $initiatives = ['LI', 'BI'];
  43. view()->share('intiatives', $initiatives);
  44. }
  45. public function performer(){
  46. $sessionKey = Cookie::get('sessionKey');
  47. if ($sessionKey == null){
  48. throw new \Exception('No session key in cookie.');
  49. }
  50. $performer = AppSession::where('session_key', $sessionKey)->first();
  51. return $performer;
  52. }
  53. }