Skip to content

Commit cd6b687

Browse files
committed
now we can change any model from config file
1 parent 24c1632 commit cd6b687

File tree

11 files changed

+54
-39
lines changed

11 files changed

+54
-39
lines changed

.phpunit.result.cache

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

src/Http/Controllers/ActivationController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Bitfumes\Multiauth\Http\Controllers;
44

55
use Illuminate\Routing\Controller;
6-
use Bitfumes\Multiauth\Model\Admin;
76
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
87

98
class ActivationController extends Controller
@@ -16,15 +15,17 @@ public function __construct()
1615
$this->adminModel = config('multiauth.models.admin');
1716
}
1817

19-
public function activate(Admin $admin)
18+
public function activate($adminId)
2019
{
20+
$admin = $this->adminModel::findOrFail($adminId);
2121
$this->authorize('UpdateAdmin', $this->adminModel);
2222
$admin->update(['active' => true]);
2323
return redirect()->back();
2424
}
2525

26-
public function deactivate(Admin $admin)
26+
public function deactivate($adminId)
2727
{
28+
$admin = $this->adminModel::findOrFail($adminId);
2829
$this->authorize('UpdateAdmin', $this->adminModel);
2930
$admin->update(['active' => false]);
3031
return redirect()->back();

src/Http/Controllers/AdminController.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Illuminate\Http\Request;
66
use Illuminate\Routing\Controller;
7-
use Bitfumes\Multiauth\Model\Admin;
87
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
98

109
class AdminController extends Controller
@@ -30,7 +29,7 @@ public function index()
3029

3130
public function show()
3231
{
33-
$admins = Admin::where('id', '!=', auth()->id())->get();
32+
$admins = $this->adminModel::where('id', '!=', auth()->id())->get();
3433

3534
return view('multiauth::admin.show', compact('admins'));
3635
}

src/Http/Controllers/AdminRoleController.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,30 @@
22

33
namespace Bitfumes\Multiauth\Http\Controllers;
44

5-
use Bitfumes\Multiauth\Model\Role;
65
use Illuminate\Routing\Controller;
7-
use Bitfumes\Multiauth\Model\Admin;
86

97
class AdminRoleController extends Controller
108
{
119
public function __construct()
1210
{
1311
$this->middleware('role:super');
12+
$this->adminModel = config('multiauth.models.admin');
13+
$this->roleModel = config('multiauth.models.role');
1414
}
1515

16-
public function attach(Admin $admin, Role $role)
16+
public function attach($adminId, $roleId)
1717
{
18+
$role = $this->roleModel::findOrFail($roleId);
19+
$admin = $this->adminModel::findOrFail($adminId);
1820
$admin->roles()->attach($role->id);
1921

2022
return redirect()->back();
2123
}
2224

23-
public function detach(Admin $admin, Role $role)
25+
public function detach($adminId, $roleId)
2426
{
27+
$role = $this->roleModel::findOrFail($roleId);
28+
$admin = $this->adminModel::findOrFail($adminId);
2529
$admin->roles()->detach($role->id);
2630

2731
return redirect()->back();

src/Http/Controllers/PermissionController.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Illuminate\Http\Request;
66
use Illuminate\Routing\Controller;
7-
use Bitfumes\Multiauth\Model\Permission;
87
use Symfony\Component\HttpFoundation\Response;
98

109
class PermissionController extends Controller
@@ -13,6 +12,7 @@ public function __construct()
1312
{
1413
$this->middleware('auth:admin');
1514
$this->middleware('role:super');
15+
$this->permissionModel = config('multiauth.models.permission');
1616
}
1717

1818
/**
@@ -22,7 +22,7 @@ public function __construct()
2222
*/
2323
public function index()
2424
{
25-
return response(['data' => Permission::all()], 200);
25+
return response(['data' => $this->permissionModel::all()], 200);
2626
}
2727

2828
/**
@@ -31,8 +31,9 @@ public function index()
3131
* @param int $id
3232
* @return \Illuminate\Http\Response
3333
*/
34-
public function show(Permission $permission)
34+
public function show($permissionId)
3535
{
36+
$permission = $this->permissionModel::findOrFail($permissionId);
3637
return response(['data' => $permission], 200);
3738
}
3839

@@ -44,7 +45,7 @@ public function show(Permission $permission)
4445
*/
4546
public function store(Request $request)
4647
{
47-
$permission = Permission::create($request->all());
48+
$permission = $this->permissionModel::create($request->all());
4849
return response(['data' => $permission], Response::HTTP_CREATED);
4950
}
5051

@@ -55,8 +56,9 @@ public function store(Request $request)
5556
* @param \Bitfumes\Multiauth\Permission $permission
5657
* @return \Illuminate\Http\Response
5758
*/
58-
public function update(Request $request, Permission $permission)
59+
public function update(Request $request, $permissionId)
5960
{
61+
$permission = $this->permissionModel::findOrFail($permissionId);
6062
$permission->update($request->all());
6163
return response(['data' => $permission], Response::HTTP_ACCEPTED);
6264
}
@@ -67,8 +69,9 @@ public function update(Request $request, Permission $permission)
6769
* @param \Bitfumes\Multiauth\Permission $permission
6870
* @return \Illuminate\Http\Response
6971
*/
70-
public function destroy(Permission $permission)
72+
public function destroy($permissionId)
7173
{
74+
$permission = $this->permissionModel::findOrFail($permissionId);
7275
$permission->delete();
7376
return response(null, Response::HTTP_NO_CONTENT);
7477
}

src/Http/Controllers/RegisterController.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
namespace Bitfumes\Multiauth\Http\Controllers;
44

5-
use Illuminate\Http\Request;
65
use Bitfumes\Multiauth\Model\Role;
76
use Illuminate\Routing\Controller;
8-
use Bitfumes\Multiauth\Model\Admin;
97
use Illuminate\Auth\Events\Registered;
108
use Illuminate\Foundation\Auth\RegistersUsers;
119
use Bitfumes\Multiauth\Http\Requests\AdminRequest;
@@ -47,12 +45,13 @@ public function __construct()
4745
{
4846
$this->middleware('auth:admin');
4947
$this->middleware('role:super');
48+
$this->adminModel = config('multiauth.models.admin');
49+
$this->roleModel = config('multiauth.models.role');
5050
}
5151

5252
public function showRegistrationForm()
5353
{
54-
$roles = Role::all();
55-
54+
$roles = $this->roleModel::all();
5655
return view('multiauth::admin.register', compact('roles'));
5756
}
5857

@@ -72,7 +71,7 @@ public function register(AdminRequest $request)
7271
*/
7372
protected function create(array $data)
7473
{
75-
$admin = new Admin();
74+
$admin = new $this->adminModel();
7675

7776
$fields = $this->tableFields();
7877
$data['password'] = bcrypt($data['password']);
@@ -105,15 +104,17 @@ protected function tableFields()
105104
return collect(\Schema::getColumnListing('admins'));
106105
}
107106

108-
public function edit(Admin $admin)
107+
public function edit($adminId)
109108
{
109+
$admin = $this->adminModel::findOrFail($adminId);
110110
$roles = Role::all();
111111

112112
return view('multiauth::admin.edit', compact('admin', 'roles'));
113113
}
114114

115-
public function update(Admin $admin, AdminRequest $request)
115+
public function update($adminId, AdminRequest $request)
116116
{
117+
$admin = $this->adminModel::findOrFail($adminId);
117118
$request['active'] = request('activation') ?? 0;
118119
unset($request['activation']);
119120
$admin->update($request->except('role_id'));
@@ -122,8 +123,9 @@ public function update(Admin $admin, AdminRequest $request)
122123
return redirect(route('admin.show'))->with('message', "{$admin->name} details are successfully updated");
123124
}
124125

125-
public function destroy(Admin $admin)
126+
public function destroy($adminId)
126127
{
128+
$admin = $this->adminModel::findOrFail($adminId);
127129
$prefix = config('multiauth.prefix');
128130
$admin->delete();
129131

src/Http/Controllers/RoleController.php

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,50 @@
33
namespace Bitfumes\Multiauth\Http\Controllers;
44

55
use Illuminate\Http\Request;
6-
use Bitfumes\Multiauth\Model\Role;
76
use Illuminate\Routing\Controller;
8-
use Bitfumes\Multiauth\Model\Permission;
97

108
class RoleController extends Controller
119
{
1210
public function __construct()
1311
{
1412
$this->middleware('auth:admin');
1513
$this->middleware('role:super');
14+
$this->roleModel = config('multiauth.models.role');
15+
$this->adminModel = config('multiauth.models.admin');
16+
$this->permissionModel = config('multiauth.models.permission');
1617
}
1718

1819
public function index()
1920
{
20-
$roles = Role::all();
21+
$roles = $this->roleModel::all();
2122
return view('multiauth::roles.index', compact('roles'));
2223
}
2324

2425
public function create()
2526
{
26-
$permissions = Permission::all()->groupBy('parent');
27+
$permissions = $this->permissionModel::all()->groupBy('parent');
2728
return view('multiauth::roles.create', compact('permissions'));
2829
}
2930

30-
public function edit(Role $role)
31+
public function edit($roleId)
3132
{
33+
$role = $this->roleModel::findOrFail($roleId);
3234
$role = $role->load('permissions');
33-
$permissions = Permission::all()->groupBy('parent');
35+
$permissions = $this->permissionModel::all()->groupBy('parent');
3436
return view('multiauth::roles.edit', compact('role', 'permissions'));
3537
}
3638

3739
public function store(Request $request)
3840
{
3941
$request->validate(['name' => 'required']);
40-
$role = Role::create($request->all());
42+
$role = $this->roleModel::create($request->all());
4143
$role->addPermission($request->permissions);
4244
return redirect(route('admin.roles'))->with('message', 'New Role is stored successfully successfully');
4345
}
4446

45-
public function update(Role $role, Request $request)
47+
public function update($roleId, Request $request)
4648
{
49+
$role = $this->roleModel::findOrFail($roleId);
4750
$request->validate(['name' => 'required']);
4851

4952
$role->update($request->all());
@@ -52,8 +55,9 @@ public function update(Role $role, Request $request)
5255
return redirect(route('admin.roles'))->with('message', 'You have updated Role successfully');
5356
}
5457

55-
public function destroy(Role $role)
58+
public function destroy($roleId)
5659
{
60+
$role = $this->roleModel::findOrFail($roleId);
5761
$role->delete();
5862

5963
return redirect()->back()->with('message', 'You have deleted Role successfully');

src/Model/Admin.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ class Admin extends Authenticatable
1515

1616
public function roles()
1717
{
18-
return $this->belongsToMany(Role::class);
18+
$role = config('multiauth.models.role');
19+
return $this->belongsToMany($role);
1920
}
2021

2122
/**

src/Model/Role.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ protected static function boot()
2121

2222
public function admins()
2323
{
24-
return $this->belongsToMany(Admin::class);
24+
$adminModel = config('multiauth.models.admin');
25+
return $this->belongsToMany($adminModel);
2526
}
2627

2728
public function permissions()

src/Providers/AuthServiceProvider.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace Bitfumes\Multiauth\Providers;
44

5-
use Bitfumes\Multiauth\Model\Admin;
65
use Illuminate\Support\Facades\Gate;
76
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
87

@@ -24,9 +23,10 @@ class AuthServiceProvider extends ServiceProvider
2423
*/
2524
public function boot()
2625
{
26+
$adminModel = config('multiauth.models.admin');
2727
$this->registerPolicies();
2828
Gate::before(function ($admin, $ability) {
29-
if ($admin instanceof Admin) {
29+
if ($admin instanceof $adminModel) {
3030
if ($this->isSuperAdmin($admin)) {
3131
return true;
3232
}

0 commit comments

Comments
 (0)