Current File : /home/tradevaly/public_html/app/Http/Controllers/Admin/RoleController.php |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use App\Models\Role;
use App\Models\Admin;
use App\Models\Permission;
use App\Models\RoleHasPermission;
use DataTables;
use Illuminate\Http\Request;
class RoleController extends Controller
{
public function index(Request $request){
$data['roles'] = Role::latest()->with('get_permissions')->get();
return view('backend.pages.userManagement.role.index')->with($data);
}
public function create(){
$data['permissions'] = Permission::all();
return view('backend.pages.userManagement.role.create')->with($data);
}
public function store(Request $request){
$request->validate([
'name' => 'required',
'permissions' => 'required',
]);
$role = new Role();
$role->name =$request->name;
$role->save();
foreach($request->permissions as $permission){
$role_has_permission = new RoleHasPermission();
$role_has_permission->permission_id = $permission ;
$role_has_permission->role_id = $role->id ;
$role_has_permission->route_name = Permission::find($permission)->route_name ;
$role_has_permission->save();
}
Toastr::success('success!','Role Created Successfully!!');
return back();
}
public function show($id){
$data['permissions'] = Permission::all();
$data['role'] = Role::findOrFail($id);
return view('backend.pages.userManagement.role.show')->with($data);
}
public function update(Request $request,$id){
if($id == 1){
return abort(404);
}
$role = Role::findOrFail($id);
$role->name =$request->name;
RoleHasPermission::where('role_id',$id)->delete();
foreach($request->permissions as $permission){
$role_has_permission = new RoleHasPermission();
$role_has_permission->permission_id = $permission ;
$role_has_permission->role_id = $role->id ;
$role_has_permission->route_name = Permission::find($permission)->route_name;
$role_has_permission->save();
}
$role->save();
Toastr::success('success!','Role Updated Successfully!!');
return back();
}
public function destroy($id){
if($id == 1){
return abort(404);
}
$role = Role::findOrfail($id);
Admin::where('role_id',$id)->delete();
RoleHasPermission::where('role_id',$id)->delete();
$role->delete();
Toastr::error('Deleted!','Role Deleted Successfully!!');
return back();
}
public function admin_index(){
$data['admins'] = Admin::latest()->get();
return view('backend.pages.userManagement.admin.index')->with($data);
}
public function admin_create(){
$data['roles'] = Role::latest()->get();
return view('backend.pages.userManagement.admin.create')->with($data);
}
public function admin_store(Request $request){
$request->validate([
'name' => ['required', 'string', 'max:255'],
'role_id' => ['required'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:admins'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
]);
$admin = new Admin();
$admin->name = $request->name;
$admin->email = $request->email;
$admin->role_id = $request->role_id;
$admin->phone = $request->phone;
$admin->password = bcrypt($request->password);
$admin->save();
Toastr::success('success!','User Created Successfully!!');
return back();
}
public function admin_destroy($id){
Admin::findOrFail($id)->delete();
Toastr::error('Deleted!','Admin Deleted Successfully!!');
return back();
}
}