Skip to content

Commit 93b9d77

Browse files
committed
Multi User Role Added
Multi User Role Added
1 parent 5c26dec commit 93b9d77

File tree

7,215 files changed

+1265
-886845
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

7,215 files changed

+1265
-886845
lines changed

app/Http/Controllers/ActivityController.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,28 @@
88
class ActivityController extends Controller
99
{
1010
function activity(Request $request){
11+
1112
$infos = DB::table('activities')->orderBy('id', 'desc')->where('uid',Auth()->user()->id)->paginate(10);
12-
print_r($infos->total());
13+
1314
$pages = range(1, $infos->lastPage());
14-
return view('activities',compact('infos','pages'));
15+
16+
if($request->role == 'admin'){
17+
return view('admin.activities',compact('infos','pages'));
18+
}
19+
20+
return view('user.activities',compact('infos','pages'));
1521
}
1622

1723
function delete(Request $request){
24+
1825
if(isset($request->ids)){
26+
1927
DB::table('activities')
2028
->whereIn('id',$request->ids)
2129
->where('uid',Auth()->user()->id)
2230
->delete();
2331
}else{
32+
2433
DB::table('activities')
2534
->where('id',$request->id)
2635
->where('uid',Auth()->user()->id)

app/Http/Controllers/AuthController.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
use Illuminate\Http\Request;
66
use Session;
7-
use App\Models\User;
87
use Hash;
98
use Illuminate\Support\Facades\Auth;
109
use KChat\ActivityLog;
10+
use Illuminate\Support\Facades\DB;
1111

1212
class AuthController extends Controller
1313
{
@@ -23,7 +23,7 @@ function signon(Request $request)
2323

2424
$data = $request->all();
2525

26-
User::create([
26+
$id = DB::table('users')->insertGetId([
2727
'first_name' => $data['first_name'],
2828
'last_name' => $data['last_name'],
2929
'email' => $data['email'],
@@ -32,6 +32,13 @@ function signon(Request $request)
3232
'created_at' => now(),
3333
]);
3434

35+
if($id == 0){
36+
DB::table('users')
37+
->where('id',$id)
38+
->limit(1)
39+
->update(['role' => '0']);
40+
}
41+
3542
return redirect('login')->with('success', 'Registration Completed');
3643
}
3744

@@ -41,9 +48,9 @@ function login(Request $request)
4148
'email' => 'required',
4249
'password' => 'required'
4350
]);
44-
51+
4552
$credentials = $request->only('email', 'password');
46-
53+
4754
if(Auth::attempt($credentials)){
4855
ActivityLog::log()->save('Login','You have successfully logged in.');
4956
}

app/Http/Controllers/DashboardController.php

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,52 @@
88
class DashboardController extends Controller
99
{
1010
function index(Request $request){
11+
12+
$dates = $this->date_range();
13+
$values = array_fill(0, count($dates), 0);
14+
15+
$current_user_messages_count = DB::table('messages')->where('user_id', Auth()->user()->id)->count();
16+
17+
$current_user_messages_count_this_month = DB::table('messages')->where('user_id', Auth()->user()->id)->where('created_at', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 MONTH)'))->count();
18+
19+
$current_user_conversations_count = DB::table('participants')->where('user_id', Auth()->user()->id)->count();
20+
21+
$current_user_new_conversations_this_month = DB::table('participants')->where('user_id', Auth()->user()->id)->where('created_at', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 MONTH)'))->count();
22+
23+
$current_user_new_messages_perday = DB::table('messages')
24+
->select(DB::raw('COUNT(*) as count'), DB::raw('DATE(`created_at`) as date'))
25+
->groupBy(DB::raw('DATE(`created_at`)'))
26+
->where('created_at', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 MONTH)'))
27+
->where('user_id', Auth()->user()->id)
28+
->orderBy('date')
29+
->get()->toArray();
30+
31+
$current_user_new_conversations_perday = DB::table('messages')
32+
->select(DB::raw('count(DISTINCT `conversation_id`) as count'), DB::raw('DATE(`created_at`) as date'))
33+
->groupBy(DB::raw('DATE(`created_at`)'))
34+
->where('created_at', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 MONTH)'))
35+
->where('user_id', Auth()->user()->id)
36+
->orderBy('date')
37+
->get()->toArray();
38+
39+
// For Users
40+
$tmp = $values;
41+
foreach($current_user_new_messages_perday as $value){
42+
$tmp[array_search($value->date,$dates)] = $value->count;
43+
}
44+
$current_user_new_messages_perday = $tmp;
45+
46+
// For Messages
47+
$tmp = $values;
48+
foreach($current_user_new_conversations_perday as $value){
49+
$tmp[array_search($value->date,$dates)] = $value->count;
50+
}
51+
$current_user_new_conversations_perday = $tmp;
1152

53+
if($request->role == 'user'){
54+
return view('user.dashboard',compact('current_user_new_messages_perday','current_user_new_conversations_perday','current_user_new_conversations_this_month','current_user_messages_count_this_month','current_user_messages_count','current_user_conversations_count','dates'));
55+
}
56+
1257
$users_count = DB::table('users')->count();
1358

1459
$new_users_this_month = DB::table('users')->where('created_at', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 MONTH)'))->count();
@@ -25,9 +70,6 @@ function index(Request $request){
2570

2671
$average_messages_peruser = $average_messages_peruser[0]->avg;
2772

28-
$dates = $this->date_range();
29-
$values = array_fill(0, count($dates), 0);
30-
3173
$new_users_perday = DB::table('users')
3274
->select(DB::raw('COUNT(*) as count'), DB::raw('DATE(`created_at`) as date'))
3375
->groupBy(DB::raw('DATE(`created_at`)'))
@@ -68,13 +110,13 @@ function index(Request $request){
68110
foreach($new_conversations_perday as $value){
69111
$tmp[array_search($value->date,$dates)] = $value->count;
70112
}
113+
71114
$new_conversations_perday = $tmp;
72115

73116
//total messages per user per date
74117
//SELECT COUNT(*),`user_id`,DATE(`created_at`) FROM `messages` GROUP BY DATE(`created_at`), `user_id`;
75118

76-
//,compact('chat','conversation')
77-
return view('dashboard',compact('new_conversations_this_month','new_messages_this_month','new_users_this_month','users_count','conversations_count','messages_count','new_users_perday','new_messages_perday','new_conversations_perday','average_messages_peruser','dates'));
119+
return view('admin.dashboard',compact('current_user_new_messages_perday','current_user_new_conversations_perday','current_user_new_conversations_this_month','current_user_messages_count_this_month','current_user_messages_count','current_user_conversations_count','new_conversations_this_month','new_messages_this_month','new_users_this_month','users_count','conversations_count','messages_count','new_users_perday','new_messages_perday','new_conversations_perday','average_messages_peruser','dates'));
78120
}
79121

80122
function date_range(){

app/Http/Controllers/MessageController.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,12 @@ function messages(Request $request){
3232
}
3333

3434
$conversation = $conversation[0];
35-
36-
return view('msg',compact('chat','conversation'));
35+
36+
if($request->role == 'admin'){
37+
return view('admin.msg',compact('chat','conversation'));
38+
}
39+
40+
return view('user.msg',compact('chat','conversation'));
3741
}
3842

3943
function UpdateConversation(Request $request){

app/Http/Controllers/NotificationController.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ function notification(Request $request){
2828

2929
}
3030
}
31-
32-
return view('notifications',compact('infos','pages'));
31+
32+
if($request->role == 'admin'){
33+
return view('admin.notifications',compact('infos','pages'));
34+
}
35+
36+
return view('user.notifications',compact('infos','pages'));
3337
}
3438

3539
function delete(Request $request){

app/Http/Controllers/SettingController.php

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,33 @@ class SettingController extends Controller
1010
{
1111

1212
function Setting(Request $request){
13-
13+
14+
if($request->role != 'admin'){
15+
return false;
16+
}
17+
1418
$TimeZone = \DateTimeZone::listIdentifiers();
19+
1520
$departments = DB::table('departments')->get();
16-
return view('settings',compact('departments','TimeZone'));
21+
22+
return view('admin.settings',compact('departments','TimeZone'));
1723
}
1824

1925
function TimeZone(Request $request){
26+
27+
if($request->role != 'admin'){
28+
return false;
29+
}
30+
2031
\Settings::set('Timezone',$request->timezone);
2132
ActivityLog::log()->save('Timezone','You have successfully updated Timezone to '.$request->timezone);
2233
}
2334

2435
function AddDepartment(Request $request){
36+
37+
if($request->role != 'admin'){
38+
return false;
39+
}
2540

2641
DB::table('departments')->insert(
2742
['department' => $request->adddepartment]
@@ -32,6 +47,10 @@ function AddDepartment(Request $request){
3247
}
3348

3449
function DeleteDepartment(Request $request){
50+
51+
if($request->role != 'admin'){
52+
return false;
53+
}
3554

3655
DB::table('departments')->where('department', $request->deletedepartment)->delete();
3756

app/Http/Controllers/UserController.php

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ function members_ajax(Request $request){
3737
$ms = $request->ms;
3838
}
3939

40-
return view('members_ajax',compact('users','pages','jsonusers','ms'));
40+
if($request->role == 'admin'){
41+
return view('admin.members_ajax',compact('users','pages','jsonusers','ms'));
42+
}
43+
44+
return view('user.members_ajax',compact('users','pages','jsonusers','ms'));
4145
}
4246

4347
function members(Request $request){
@@ -65,16 +69,24 @@ function members(Request $request){
6569
$ms = $request->ms;
6670
}
6771

68-
return view('members',compact('users','pages','jsonusers','ms'));
72+
if($request->role == 'admin'){
73+
return view('admin.members',compact('users','pages','jsonusers','ms'));
74+
}
75+
76+
return view('user.members',compact('users','pages','jsonusers','ms'));
6977
}
7078

7179
function delete_users(Request $request){
7280

81+
if($request->role != 'admin'){
82+
return false;
83+
}
84+
7385
if($request->ids == null){
7486
return false;
7587
}
7688

77-
if(DB::table('users')->whereIn('id', $request->ids)->delete()){
89+
if(DB::table('users')->whereIn('id', $request->ids)->whereIn('role', [1,2])->delete()){
7890

7991
$emails = implode(", ",array_column(User::select(['email'])->whereIn('id', $request->ids)->get()->toArray(), 'email'));
8092

@@ -84,6 +96,10 @@ function delete_users(Request $request){
8496

8597
function set_inactive_users(Request $request){
8698

99+
if($request->role != 'admin'){
100+
return false;
101+
}
102+
87103
if($request->ids == null){
88104
return false;
89105
}
@@ -100,6 +116,10 @@ function set_inactive_users(Request $request){
100116

101117
function set_active_users(Request $request){
102118

119+
if($request->role != 'admin'){
120+
return false;
121+
}
122+
103123
if($request->ids == null){
104124
return false;
105125
}
@@ -115,11 +135,11 @@ function set_active_users(Request $request){
115135
}
116136

117137
function block_users(Request $request){
118-
138+
119139
if($request->ids == null){
120140
return false;
121141
}
122-
142+
123143
if(DB::table('users')->whereIn('id', $request->ids)->update(['status' => 'Blocked'])){
124144

125145
$emails = implode(", ",array_column(User::select(['email'])->whereIn('id', $request->ids)->get()->toArray(), 'email'));
@@ -146,15 +166,61 @@ function unblock_users(Request $request){
146166
}
147167
}
148168

169+
function MakeAdmin(Request $request){
170+
171+
if($request->role != 'admin'){
172+
return false;
173+
}
174+
175+
if($request->ids == null){
176+
return false;
177+
}
178+
179+
if(DB::table('users')->whereIn('id', $request->ids)->where(['role' => 1])->update(['role' => 2])){
180+
181+
$emails = implode(", ",array_column(User::select(['email'])->whereIn('id', $request->ids)->get()->toArray(), 'email'));
182+
183+
ActivityLog::log()->save('Admin access granted','you have granted admin access to '.$emails.'.');
184+
185+
NotificationsLog::log()->save($request->ids, 'Admin access granted',Auth()->user()->email.' granted admin access to you');
186+
}
187+
188+
}
189+
190+
function RevokeAdmin(Request $request){
191+
192+
if($request->role != 'admin'){
193+
return false;
194+
}
195+
196+
if($request->ids == null){
197+
return false;
198+
}
199+
200+
if(DB::table('users')->whereIn('id', $request->ids)->where(['role' => 2])->update(['role' => 1])){
201+
202+
$emails = implode(", ",array_column(User::select(['email'])->whereIn('id', $request->ids)->get()->toArray(), 'email'));
203+
204+
ActivityLog::log()->save('Admin access revoked','you revoked admin access '.$emails.'.');
205+
206+
NotificationsLog::log()->save($request->ids, 'Admin access revoked',Auth()->user()->email.' revoked admin access to you');
207+
}
208+
209+
}
210+
149211
function Profile(Request $request){
150212

151213
$profile = DB::table('users')->where('id',Auth()->user()->id)->get();
152214

153215
$departments = DB::table('departments')->get();
154216

155217
$profile = $profile[0];
156-
157-
return view('profile',compact('profile','departments'));
218+
219+
if($request->role != 'admin'){
220+
return view('user.profile',compact('profile','departments'));
221+
}
222+
223+
return view('admin.profile',compact('profile','departments'));
158224

159225
}
160226

@@ -230,6 +296,10 @@ function SaveProfile(Request $request){
230296

231297
$data['updated_at'] = now();
232298

299+
if(isset($data['role'])){
300+
unset($data['role']);
301+
}
302+
233303
DB::table('users')
234304
->where('id',Auth()->user()->id)
235305
->limit(1)

app/Http/Kernel.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ class Kernel extends HttpKernel
5555
'GetCounts' => [
5656
Middleware\GetCounts::class,
5757
],
58-
59-
'CheckRole' => [
60-
Middleware\CheckRole::class,
61-
],
58+
6259
];
6360

6461
/**

0 commit comments

Comments
 (0)