Skip to content

Commit a447d3b

Browse files
Merge pull request #114 from jitendra-webkul/master
Issue #29 implemented
2 parents 3e364bf + c10844c commit a447d3b

File tree

29 files changed

+1092
-330
lines changed

29 files changed

+1092
-330
lines changed

packages/Webkul/Admin/src/Config/acl.php

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -141,25 +141,25 @@
141141
'name' => 'admin::app.acl.settings',
142142
'route' => 'admin.settings.users.index',
143143
'sort' => 7,
144-
], [
145-
'key' => 'settings.users',
146-
'name' => 'admin::app.acl.users',
147-
'route' => 'admin.settings.users.index',
144+
], [
145+
'key' => 'settings.groups',
146+
'name' => 'admin::app.acl.groups',
147+
'route' => 'admin.settings.groups.index',
148148
'sort' => 1,
149149
], [
150-
'key' => 'settings.users.create',
150+
'key' => 'settings.groups.create',
151151
'name' => 'admin::app.acl.create',
152-
'route' => ['admin.settings.users.create', 'admin.settings.users.store'],
152+
'route' => ['admin.settings.groups.create', 'admin.settings.groups.store'],
153153
'sort' => 1,
154154
], [
155-
'key' => 'settings.users.edit',
155+
'key' => 'settings.groups.edit',
156156
'name' => 'admin::app.acl.edit',
157-
'route' => ['admin.settings.users.edit', 'admin.settings.users.update'],
157+
'route' => ['admin.settings.groups.edit', 'admin.settings.groups.update'],
158158
'sort' => 2,
159159
], [
160-
'key' => 'settings.users.delete',
160+
'key' => 'settings.groups.delete',
161161
'name' => 'admin::app.acl.delete',
162-
'route' => ['admin.settings.users.delete', 'admin.settings.users.mass_delete'],
162+
'route' => 'admin.settings.groups.delete',
163163
'sort' => 3,
164164
], [
165165
'key' => 'settings.roles',
@@ -181,11 +181,31 @@
181181
'name' => 'admin::app.acl.delete',
182182
'route' => 'admin.settings.roles.delete',
183183
'sort' => 3,
184+
], [
185+
'key' => 'settings.users',
186+
'name' => 'admin::app.acl.users',
187+
'route' => 'admin.settings.users.index',
188+
'sort' => 3,
189+
], [
190+
'key' => 'settings.users.create',
191+
'name' => 'admin::app.acl.create',
192+
'route' => ['admin.settings.users.create', 'admin.settings.users.store'],
193+
'sort' => 1,
194+
], [
195+
'key' => 'settings.users.edit',
196+
'name' => 'admin::app.acl.edit',
197+
'route' => ['admin.settings.users.edit', 'admin.settings.users.update'],
198+
'sort' => 2,
199+
], [
200+
'key' => 'settings.users.delete',
201+
'name' => 'admin::app.acl.delete',
202+
'route' => ['admin.settings.users.delete', 'admin.settings.users.mass_delete'],
203+
'sort' => 3,
184204
], [
185205
'key' => 'settings.attributes',
186206
'name' => 'admin::app.acl.attributes',
187207
'route' => 'admin.settings.attributes.index',
188-
'sort' => 3,
208+
'sort' => 4,
189209
], [
190210
'key' => 'settings.attributes.create',
191211
'name' => 'admin::app.acl.create',
@@ -205,7 +225,7 @@
205225
'key' => 'settings.sources',
206226
'name' => 'admin::app.acl.sources',
207227
'route' => 'admin.settings.sources.index',
208-
'sort' => 3,
228+
'sort' => 5,
209229
], [
210230
'key' => 'settings.sources.create',
211231
'name' => 'admin::app.acl.create',
@@ -225,7 +245,7 @@
225245
'key' => 'settings.types',
226246
'name' => 'admin::app.acl.types',
227247
'route' => 'admin.settings.types.index',
228-
'sort' => 3,
248+
'sort' => 6,
229249
], [
230250
'key' => 'settings.types.create',
231251
'name' => 'admin::app.acl.create',

packages/Webkul/Admin/src/Config/menu.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,34 +101,39 @@
101101
], [
102102
'key' => 'settings',
103103
'name' => 'admin::app.layouts.settings',
104-
'route' => 'admin.settings.roles.index',
104+
'route' => 'admin.settings.groups.index',
105105
'sort' => 8,
106106
'icon-class' => 'settings-icon',
107+
], [
108+
'key' => 'settings.groups',
109+
'name' => 'admin::app.layouts.groups',
110+
'route' => 'admin.settings.groups.index',
111+
'sort' => 1,
107112
], [
108113
'key' => 'settings.roles',
109114
'name' => 'admin::app.layouts.roles',
110115
'route' => 'admin.settings.roles.index',
111-
'sort' => 1,
116+
'sort' => 2,
112117
], [
113118
'key' => 'settings.users',
114119
'name' => 'admin::app.layouts.users',
115120
'route' => 'admin.settings.users.index',
116-
'sort' => 2,
121+
'sort' => 3,
117122
], [
118123
'key' => 'settings.attributes',
119124
'name' => 'admin::app.layouts.attributes',
120125
'route' => 'admin.settings.attributes.index',
121-
'sort' => 3,
126+
'sort' => 4,
122127
], [
123128
'key' => 'settings.sources',
124129
'name' => 'admin::app.layouts.sources',
125130
'route' => 'admin.settings.sources.index',
126-
'sort' => 4,
131+
'sort' => 5,
127132
], [
128133
'key' => 'settings.types',
129134
'name' => 'admin::app.layouts.types',
130135
'route' => 'admin.settings.types.index',
131-
'sort' => 5,
136+
'sort' => 6,
132137
// ], [
133138
// 'key' => 'configuration',
134139
// 'name' => 'admin::app.layouts.configuration',

packages/Webkul/Admin/src/DataGrids/Activity/ActivityDataGrid.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,21 @@ public function prepareQueryBuilder()
3737
'persons.name as contact_person',
3838
'persons.id as contact_person_id'
3939
)
40-
->where(function ($query) {
41-
if (($currentUser = auth()->guard('user')->user())->lead_view_permission == "individual") {
42-
$query->where('lead_activities.user_id', $currentUser->id);
43-
}
44-
})
4540
->leftJoin('leads', 'lead_activities.lead_id', '=', 'leads.id')
4641
->leftJoin('users', 'lead_activities.user_id', '=', 'users.id')
4742
->leftJoin('persons', 'leads.person_id', '=', 'persons.id');
4843

44+
45+
$currentUser = auth()->guard('user')->user();
46+
47+
if ($currentUser->lead_view_permission != 'global') {
48+
if ($currentUser->lead_view_permission == 'group') {
49+
$queryBuilder->whereIn('lead_activities.user_id', app('\Webkul\User\Repositories\UserRepository')->getCurrentUserGroupsUserIds());
50+
} else {
51+
$queryBuilder->where('lead_activities.user_id', $currentUser->id);
52+
}
53+
}
54+
4955
$this->addFilter('id', 'lead_activities.id');
5056
$this->addFilter('assigned_to', 'users.name');
5157
$this->addFilter('contact_person', 'persons.name');

packages/Webkul/Admin/src/DataGrids/Lead/LeadDataGrid.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,14 @@ public function prepareQueryBuilder()
4444
->leftJoin('lead_pipelines', 'leads.lead_pipeline_id', '=', 'lead_pipelines.id')
4545
;
4646

47-
if (($user = auth()->guard('user')->user())->lead_view_permission == 'individual') {
48-
$queryBuilder->where('leads.user_id', $user->id);
47+
$currentUser = auth()->guard('user')->user();
48+
49+
if ($currentUser->lead_view_permission != 'global') {
50+
if ($currentUser->lead_view_permission == 'group') {
51+
$queryBuilder->whereIn('leads.user_id', app('\Webkul\User\Repositories\UserRepository')->getCurrentUserGroupsUserIds());
52+
} else {
53+
$queryBuilder->where('leads.user_id', $currentUser->id);
54+
}
4955
}
5056

5157
$this->addFilter('id', 'leads.id');

packages/Webkul/Admin/src/DataGrids/Quote/QuoteDataGrid.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@ public function prepareQueryBuilder()
3232
->leftJoin('users', 'quotes.user_id', '=', 'users.id')
3333
->leftJoin('persons', 'quotes.person_id', '=', 'persons.id');
3434

35+
$currentUser = auth()->guard('user')->user();
36+
37+
if ($currentUser->lead_view_permission != 'global') {
38+
if ($currentUser->lead_view_permission == 'group') {
39+
$queryBuilder->whereIn('quotes.user_id', app('\Webkul\User\Repositories\UserRepository')->getCurrentUserGroupsUserIds());
40+
} else {
41+
$queryBuilder->where('quotes.user_id', $currentUser->id);
42+
}
43+
}
44+
3545
$this->addFilter('id', 'quotes.id');
3646
$this->addFilter('user', 'quotes.user_id');
3747
$this->addFilter('person_name', 'persons.name');
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?php
2+
3+
namespace Webkul\Admin\DataGrids\Setting;
4+
5+
use Webkul\UI\DataGrid\DataGrid;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class GroupDataGrid extends DataGrid
9+
{
10+
protected $redirectRow = [
11+
"id" => "id",
12+
"route" => "admin.settings.groups.edit",
13+
];
14+
15+
public function prepareQueryBuilder()
16+
{
17+
$queryBuilder = DB::table('groups')
18+
->addSelect(
19+
'groups.id',
20+
'groups.name',
21+
'groups.description',
22+
);
23+
24+
$this->setQueryBuilder($queryBuilder);
25+
}
26+
27+
public function addColumns()
28+
{
29+
$this->addColumn([
30+
'index' => 'id',
31+
'head_style' => 'width: 50px',
32+
'label' => trans('admin::app.datagrid.id'),
33+
'type' => 'string',
34+
'searchable' => true,
35+
'sortable' => true,
36+
'filterable_type' => 'add'
37+
]);
38+
39+
$this->addColumn([
40+
'index' => 'name',
41+
'label' => trans('admin::app.datagrid.name'),
42+
'type' => 'string',
43+
'searchable' => true,
44+
'sortable' => true,
45+
'filterable_type' => 'add'
46+
]);
47+
48+
$this->addColumn([
49+
'index' => 'description',
50+
'label' => trans('admin::app.datagrid.description'),
51+
'type' => 'string',
52+
'searchable' => true,
53+
'sortable' => false,
54+
]);
55+
}
56+
57+
public function prepareActions()
58+
{
59+
$this->addAction([
60+
'title' => trans('ui::app.datagrid.edit'),
61+
'method' => 'GET',
62+
'route' => 'admin.settings.groups.edit',
63+
'icon' => 'pencil-icon',
64+
]);
65+
66+
$this->addAction([
67+
'title' => trans('ui::app.datagrid.delete'),
68+
'method' => 'DELETE',
69+
'route' => 'admin.settings.groups.delete',
70+
'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'group']),
71+
'icon' => 'trash-icon',
72+
]);
73+
}
74+
75+
public function prepareMassActions()
76+
{
77+
}
78+
}

packages/Webkul/Admin/src/Http/Controllers/Lead/LeadController.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,19 @@ public function view($id)
111111
{
112112
$lead = $this->leadRepository->findOrFail($id);
113113

114-
if (($currentUser = auth()->guard('user')->user())->lead_view_permission == "individual") {
115-
if ($lead->user_id != $currentUser->id) {
116-
return redirect()->route('admin.leads.index');
114+
$currentUser = auth()->guard('user')->user();
115+
116+
if ($currentUser->lead_view_permission != 'global') {
117+
if ($currentUser->lead_view_permission == 'group') {
118+
$userIds = app('\Webkul\User\Repositories\UserRepository')->getCurrentUserGroupsUserIds();
119+
120+
if (! in_array($lead->user_id, $userIds)) {
121+
return redirect()->route('admin.leads.index');
122+
}
123+
} else {
124+
if ($lead->user_id != $currentUser->id) {
125+
return redirect()->route('admin.leads.index');
126+
}
117127
}
118128
}
119129

0 commit comments

Comments
 (0)