This commit is contained in:
Domko17 2021-10-26 21:31:01 +02:00
parent d459430c27
commit 8009fdaea3
2 changed files with 12 additions and 53 deletions

View File

@ -2,9 +2,7 @@
namespace Webkul\User\Http\Controllers; namespace Webkul\User\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Webkul\User\Repositories\AdminRepository;
use Webkul\User\Repositories\RoleRepository; use Webkul\User\Repositories\RoleRepository;
class RoleController extends Controller class RoleController extends Controller
@ -23,26 +21,17 @@ class RoleController extends Controller
*/ */
protected $roleRepository; protected $roleRepository;
/**
* AdminRepository object
*
* @var \Webkul\User\Repositories\AdminRepository
*/
protected $adminRepository;
/** /**
* Create a new controller instance. * Create a new controller instance.
* *
* @param \Webkul\User\Repositories\RoleRepository $roleRepository * @param \Webkul\User\Repositories\RoleRepository $roleRepository
* @param \Webkul\User\Repositories\AdminRepository $adminRepository
* @return void * @return void
*/ */
public function __construct(RoleRepository $roleRepository, AdminRepository $adminRepository) public function __construct(RoleRepository $roleRepository)
{ {
$this->middleware('admin'); $this->middleware('admin');
$this->roleRepository = $roleRepository; $this->roleRepository = $roleRepository;
$this->adminRepository = $adminRepository;
$this->_config = request('_config'); $this->_config = request('_config');
} }
@ -118,24 +107,11 @@ class RoleController extends Controller
Event::dispatch('user.role.update.before', $id); Event::dispatch('user.role.update.before', $id);
if (request()->permission_type != 'all'){ $role = $this->roleRepository->update(request()->all(), $id);
if ($this->roleRepository->findWhere(['permission_type' => 'all'], 'permission_type')->count() > 1){
$role = $this->roleRepository->update(request()->all(), $id); Event::dispatch('user.role.update.after', $role);
Event::dispatch('user.role.update.after', $role);
session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Role'])); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Role']));
if($this->adminRepository->findWhere(['id' => auth()->guard('admin')->user()->id, 'role_id' => $id], 'role_id')->count() > 0){
auth()->guard('admin')->logout();
}
}
else{
session()->flash('error', trans('This is last Role with ALL permission.'));
}
}
else{
$role = $this->roleRepository->update(request()->all(), $id);
Event::dispatch('user.role.update.after', $role);
session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Role']));
}
return redirect()->route($this->_config['redirect']); return redirect()->route($this->_config['redirect']);
} }
@ -154,8 +130,6 @@ class RoleController extends Controller
session()->flash('error', trans('admin::app.response.being-used', ['name' => 'Role', 'source' => 'Admin User'])); session()->flash('error', trans('admin::app.response.being-used', ['name' => 'Role', 'source' => 'Admin User']));
} elseif($this->roleRepository->count() == 1) { } elseif($this->roleRepository->count() == 1) {
session()->flash('error', trans('admin::app.response.last-delete-error', ['name' => 'Role'])); session()->flash('error', trans('admin::app.response.last-delete-error', ['name' => 'Role']));
} elseif($this->roleRepository->findWhere(['permission_type' => 'all'], 'permission_type')->count() > 1) {
session()->flash('error', trans('This is last Role with ALL permission.'));
} else { } else {
try { try {
Event::dispatch('user.role.delete.before', $id); Event::dispatch('user.role.delete.before', $id);

View File

@ -144,30 +144,15 @@ class UserController extends Controller
Event::dispatch('user.admin.update.before', $id); Event::dispatch('user.admin.update.before', $id);
$countAdmins = 0; $admin = $this->adminRepository->update($data, $id);
if ($this->roleRepository->find($data['role_id'])->permission_type != "all"){
foreach ($this->adminRepository->get('role_id') as $userRole){ if ($isPasswordChanged) {
if ($userRole->role_id == 1){ Event::dispatch('user.admin.update-password', $admin);
$countAdmins++;
if ($countAdmins > 1){
break;
}
}
}
if ($countAdmins == 1){
session()->flash('error', trans('This is last User with ALL permission.'));
}
} }
if ($countAdmins != 1){ Event::dispatch('user.admin.update.after', $admin);
$admin = $this->adminRepository->update($data, $id);
if ($isPasswordChanged) { session()->flash('success', trans('admin::app.response.update-success', ['name' => 'User']));
Event::dispatch('user.admin.update-password', $admin);
}
Event::dispatch('user.admin.update.after', $admin);
session()->flash('success', trans('admin::app.response.update-success', ['name' => 'User']));
}
return redirect()->route($this->_config['redirect']); return redirect()->route($this->_config['redirect']);
} }