Skip to content

Commit 2e51db1

Browse files
Merge pull request #1236 from prabhat-webkul/fix-1214
Fixed #1214
2 parents 30516c0 + 6caf3b1 commit 2e51db1

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

packages/Webkul/Admin/src/DataGrids/Setting/UserDataGrid.php

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,32 @@
66
use Illuminate\Support\Facades\Storage;
77
use Webkul\Admin\Traits\ProvideDropdownOptions;
88
use Webkul\UI\DataGrid\DataGrid;
9+
use Webkul\User\Repositories\UserRepository;
910

1011
class UserDataGrid extends DataGrid
1112
{
1213
use ProvideDropdownOptions;
1314

15+
/**
16+
* User repository instance.
17+
*
18+
* @var \Webkul\User\Repositories\UserRepository
19+
*/
20+
protected $userRepository;
21+
22+
/**
23+
* Create data grid instance.
24+
*
25+
* @param \Webkul\User\Repositories\UserRepository $userRepository
26+
* @return void
27+
*/
28+
public function __construct(UserRepository $userRepository)
29+
{
30+
$this->userRepository = $userRepository;
31+
32+
parent::__construct();
33+
}
34+
1435
/**
1536
* Prepare query builder.
1637
*
@@ -26,7 +47,18 @@ public function prepareQueryBuilder()
2647
'users.image',
2748
'users.status',
2849
'users.created_at'
29-
);
50+
)
51+
->leftJoin('user_groups', 'users.id', '=', 'user_groups.user_id');
52+
53+
$currentUser = auth()->guard('user')->user();
54+
55+
if ($currentUser->view_permission != 'global') {
56+
if ($currentUser->view_permission == 'group') {
57+
$queryBuilder->whereIn('users.id', $this->userRepository->getCurrentUserGroupsUserIds());
58+
} else {
59+
$queryBuilder->where('users.id', $currentUser->id);
60+
}
61+
}
3062

3163
$this->addFilter('id', 'users.id');
3264

packages/Webkul/Admin/src/Resources/assets/js/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ $(function() {
155155
var inputNames = [];
156156

157157
key.split('.').forEach(function(chunk, index) {
158-
if(index) {
158+
if (index) {
159159
inputNames.push('[' + chunk + ']')
160160
} else {
161161
inputNames.push(chunk)

packages/Webkul/Attribute/src/Repositories/AttributeRepository.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,20 @@ public function getLookUpOptions($lookup, $query = '', $columns = [])
137137
$columns = [($lookup['value_column'] ?? 'id') . ' as id' , ($lookup['label_column'] ?? 'name') . ' as name'];
138138
}
139139

140+
if (Str::contains($lookup['repository'], 'UserRepository')) {
141+
$userRepository = app($lookup['repository']);
142+
143+
$currentUser = auth()->guard('user')->user();
144+
145+
if ($currentUser->view_permission === 'group') {
146+
return $userRepository->leftJoin('user_groups', 'users.id', '=', 'user_groups.user_id')
147+
->where('users.name', 'like', '%' . urldecode($query) . '%')
148+
->get();
149+
} elseif ($currentUser->view_permission === 'individual') {
150+
return $userRepository->findByField('users.id', $currentUser->id);
151+
}
152+
}
153+
140154
return app($lookup['repository'])->findWhere([
141155
[$lookup['label_column'] ?? 'name', 'like', '%' . urldecode($query) . '%']
142156
], $columns);

0 commit comments

Comments
 (0)