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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
namespace App\Http\Controllers;
use App\LeaveType;
use Illuminate\Http\Request;
class LeaveTypeController extends Controller
{
public function index()
{
if(\Auth::user()->can('Manage Leave Type'))
{
$leavetypes = LeaveType::where('created_by', '=', \Auth::user()->creatorId())->get();
return view('leavetype.index', compact('leavetypes'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function create()
{
if(\Auth::user()->can('Create Leave Type'))
{
return view('leavetype.create');
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
public function store(Request $request)
{
if(\Auth::user()->can('Create Leave Type'))
{
$validator = \Validator::make(
$request->all(), [
'title' => 'required',
'days' => 'required',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$leavetype = new LeaveType();
$leavetype->title = $request->title;
$leavetype->days = $request->days;
$leavetype->created_by = \Auth::user()->creatorId();
$leavetype->save();
return redirect()->route('leavetype.index')->with('success', __('LeaveType successfully created.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function show(LeaveType $leavetype)
{
return redirect()->route('leavetype.index');
}
public function edit(LeaveType $leavetype)
{
if(\Auth::user()->can('Edit Leave Type'))
{
if($leavetype->created_by == \Auth::user()->creatorId())
{
return view('leavetype.edit', compact('leavetype'));
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
public function update(Request $request, LeaveType $leavetype)
{
if(\Auth::user()->can('Edit Leave Type'))
{
if($leavetype->created_by == \Auth::user()->creatorId())
{
$validator = \Validator::make(
$request->all(), [
'title' => 'required',
'days' => 'required',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$leavetype->title = $request->title;
$leavetype->days = $request->days;
$leavetype->save();
return redirect()->route('leavetype.index')->with('success', __('LeaveType successfully updated.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function destroy(LeaveType $leavetype)
{
if(\Auth::user()->can('Delete Leave Type'))
{
if($leavetype->created_by == \Auth::user()->creatorId())
{
$leavetype->delete();
return redirect()->route('leavetype.index')->with('success', __('LeaveType successfully deleted.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
}