-
Notifications
You must be signed in to change notification settings - Fork 2
/
ActualLetterController.php
117 lines (105 loc) · 3.16 KB
/
ActualLetterController.php
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\Models\UserService;
use App\Models\Letters;
use App\Models\LetterHistory;
use Config;
use Carbon\Carbon;
class ActualLetterController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
public function index($id)
{
$directory=env('CORRESPONDENCE_DIR');
$letters = Letters::where('id', $id)->get();
$authorized = ActualLetterController::hasAuthority($id);
if ($authorized) {
return view('letter/actual-letter')->with([
'directory' => $directory,
'letters' => $letters
]);
} else {
return redirect()->route('dashboard');
}
}
public function pdfjs($id)
{
$directory=env('CORRESPONDENCE_DIR');
$letters = Letters::where('id', $id)->get();
$authorized = ActualLetterController::hasAuthority($id);
if ($authorized) {
return view('letter/letter-pdfjs')->with([
'directory' => $directory,
'letters' => $letters
]);
} else {
return redirect()->route('dashboard');
}
}
public function showAccessible($id)
{
$directory=env('CORRESPONDENCE_DIR');
$letters = Letters::where('id', $id)->get();
$authorized = ActualLetterController::hasAuthority($id);
if ($authorized) {
return view('letter/letter-accessible')->with([
'directory' => $directory,
'letters' => $letters
]);
} else {
return redirect()->route('dashboard');
}
}
public function showToDownload($id)
{
$directory=env('CORRESPONDENCE_DIR');
$letters = Letters::where('id', $id)->get();
$letterDate = Carbon::parse($letters[0]->letter_date)->format('Y-m-d');
$fileName = 'DHHS-letter-'. $letterDate. '.pdf';
$authorized = ActualLetterController::hasAuthority($id);
if ($authorized) {
return view('letter/letter-to-download')->with([
'directory' => $directory,
'filename' => $fileName,
'letters' => $letters
]);
} else {
return redirect()->route('dashboard');
}
}
private function hasAuthority ($letter_id) {
$user = Auth::user();
if ($user->usertype == 1) { // user is an administrator
return true;
} else {
$letters = Letters::where('id', $letter_id)->get();
if (count($letters) > 0) {
// check to see if this user ever "received" the letter
$letter_history = LetterHistory::where('user_id',$user->id)
->where('letter_uuid', $letters[0]->uuid)
->get();
/*
// check to see if this user is assigned to the service
$user_services = UserService::where('user_id',$user->id)
->where('reference_id',$letters[0]->reference_id)
->get();
*/
}
if ( (count($letters) > 0) && (count($letter_history) > 0) ) {
return true;
} else {
return false;
}
}
}
}