Skip to content

Commit 7ba1e24

Browse files
committed
Refactor User Module - Move db queries
1 parent 7f7092d commit 7ba1e24

File tree

4 files changed

+65
-67
lines changed

4 files changed

+65
-67
lines changed

app/Http/Controllers/Backend/Access/User/UserController.php

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@
22

33
namespace App\Http\Controllers\Backend\Access\User;
44

5+
use App\Models\Access\User\User;
6+
use Illuminate\Support\Facades\DB;
57
use App\Http\Controllers\Controller;
6-
use App\Http\Requests\Backend\Access\User\CreateUserRequest;
7-
use App\Http\Requests\Backend\Access\User\DeleteUserRequest;
8+
use App\Models\Access\Permission\Permission;
9+
use App\Repositories\Backend\Access\Role\RoleRepository;
10+
use App\Repositories\Backend\Access\User\UserRepository;
811
use App\Http\Requests\Backend\Access\User\EditUserRequest;
9-
use App\Http\Requests\Backend\Access\User\ManageUserRequest;
1012
use App\Http\Requests\Backend\Access\User\ShowUserRequest;
1113
use App\Http\Requests\Backend\Access\User\StoreUserRequest;
14+
use App\Http\Requests\Backend\Access\User\CreateUserRequest;
15+
use App\Http\Requests\Backend\Access\User\DeleteUserRequest;
16+
use App\Http\Requests\Backend\Access\User\ManageUserRequest;
1217
use App\Http\Requests\Backend\Access\User\UpdateUserRequest;
13-
use App\Models\Access\User\User;
14-
use App\Repositories\Backend\Access\Role\RoleRepository;
15-
use App\Repositories\Backend\Access\User\UserRepository;
16-
use Illuminate\Support\Facades\DB;
1718

1819
/**
1920
* Class UserController.
@@ -94,15 +95,16 @@ public function show(User $user, ShowUserRequest $request)
9495
*/
9596
public function edit(User $user, EditUserRequest $request)
9697
{
97-
$userPermissions = DB::table('permission_user')->where('user_id', $user->id)->pluck('permission_id', 'permission_id')->toArray();
98-
$permissions = DB::table('permissions')->pluck('display_name', 'id')->toArray();
99-
ksort($userPermissions);
100-
ksort($permissions);
101-
102-
return view('backend.access.users.edit', compact('userPermissions', 'permissions'))
103-
->withUser($user)
104-
->withUserRoles($user->roles->pluck('id')->all())
105-
->withRoles($this->roles->getAll());
98+
$permissions = Permission::getSelectData('display_name');
99+
$userPermissions = $user->permissions()->get()->pluck('id')->toArray();
100+
101+
return view('backend.access.users.edit')->with([
102+
'user' => $user,
103+
'userRoles'=> $user->roles->pluck('id')->all(),
104+
'roles' => $this->roles->getAll(),
105+
'userPermissions' => $userPermissions ,
106+
'permissions' => $permissions
107+
]);
106108
}
107109

108110
/**

app/Models/BaseModel.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ class BaseModel extends Model
1414
*
1515
* @return array
1616
*/
17-
public static function getSelectData($id = null, $val = null)
17+
public static function getSelectData($field_name = 'name')
1818
{
1919
$collection = parent::all();
2020

21-
return self::getItems($collection);
21+
return self::getItems($collection, $field_name);
2222
}
2323

2424
/**
@@ -28,24 +28,20 @@ public static function getSelectData($id = null, $val = null)
2828
*
2929
* @return array
3030
*/
31-
public static function getItems($collection)
31+
public static function getItems($collection,$field_name)
3232
{
3333
$items = [];
3434

3535
foreach ($collection as $model) {
3636
$items[$model->id] = [
3737
'id' => $model->id,
38-
'name' => $model->name,
38+
'name' => $model->$field_name,
3939
'model' => $model,
4040
];
4141
}
4242

4343
foreach ($items as $id => $item) {
44-
if (isset(static::$selectHTMLFormat) && static::$selectHTMLFormat !== '') {
45-
$items[$item['id']] = static::generateSelectName($item['model'], static::$selectHTMLFormat);
46-
} else {
4744
$items[$item['id']] = $item['name'];
48-
}
4945
}
5046

5147
return $items;

app/Repositories/Backend/Access/User/UserRepository.php

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -28,50 +28,22 @@ class UserRepository extends BaseRepository
2828
const MODEL = User::class;
2929

3030
/**
31-
* @var RoleRepository
31+
* @var User Model
3232
*/
33-
protected $role;
33+
protected $model;
3434

3535
/**
36-
* @param RoleRepository $role
37-
*/
38-
public function __construct(RoleRepository $role)
39-
{
40-
$this->role = $role;
41-
}
42-
43-
/**
44-
* @param $permissions
45-
* @param string $by
46-
*
47-
* @return mixed
36+
* @var RoleRepository
4837
*/
49-
public function getByPermission($permissions, $by = 'name')
50-
{
51-
if (!is_array($permissions)) {
52-
$permissions = [$permissions];
53-
}
54-
55-
return $this->query()->whereHas('roles.permissions', function ($query) use ($permissions, $by) {
56-
$query->whereIn('permissions.'.$by, $permissions);
57-
})->get();
58-
}
38+
protected $role;
5939

6040
/**
61-
* @param $roles
62-
* @param string $by
63-
*
64-
* @return mixed
41+
* @param RoleRepository $role
6542
*/
66-
public function getByRole($roles, $by = 'name')
43+
public function __construct(User $model, RoleRepository $role)
6744
{
68-
if (!is_array($roles)) {
69-
$roles = [$roles];
70-
}
71-
72-
return $this->query()->whereHas('roles', function ($query) use ($roles, $by) {
73-
$query->whereIn('roles.'.$by, $roles);
74-
})->get();
45+
$this->model = $model;
46+
$this->role = $role;
7547
}
7648

7749
/**
@@ -162,7 +134,7 @@ public function create($request)
162134
*
163135
* @return bool
164136
*/
165-
public function update(Model $user, $request)
137+
public function update($user, $request)
166138
{
167139
$data = $request->except('assignees_roles', 'permissions');
168140
$roles = $request->get('assignees_roles');
@@ -406,4 +378,38 @@ protected function createUserStub($input)
406378

407379
return $user;
408380
}
381+
382+
/**
383+
* @param $permissions
384+
* @param string $by
385+
*
386+
* @return mixed
387+
*/
388+
public function getByPermission($permissions, $by = 'name')
389+
{
390+
if (!is_array($permissions)) {
391+
$permissions = [$permissions];
392+
}
393+
394+
return $this->query()->whereHas('roles.permissions', function ($query) use ($permissions, $by) {
395+
$query->whereIn('permissions.'.$by, $permissions);
396+
})->get();
397+
}
398+
399+
/**
400+
* @param $roles
401+
* @param string $by
402+
*
403+
* @return mixed
404+
*/
405+
public function getByRole($roles, $by = 'name')
406+
{
407+
if (!is_array($roles)) {
408+
$roles = [$roles];
409+
}
410+
411+
return $this->query()->whereHas('roles', function ($query) use ($roles, $by) {
412+
$query->whereIn('roles.'.$by, $roles);
413+
})->get();
414+
}
409415
}

database/migrations/2017_11_02_060149_create_users_table.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ public function up()
1818
$table->string('last_name', 191);
1919
$table->string('email', 191)->unique();
2020
$table->string('password', 191)->nullable();
21-
$table->text('address', 65535)->nullable();
22-
$table->integer('country_id')->unsigned()->index();
23-
$table->integer('state_id')->unsigned()->index();
24-
$table->integer('city_id')->unsigned()->index();
25-
$table->string('zip_code', 191);
26-
$table->string('ssn', 191);
2721
$table->boolean('status')->default(1);
2822
$table->string('confirmation_code', 191)->nullable();
2923
$table->boolean('confirmed')->default(0);

0 commit comments

Comments
 (0)