Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
admin
/
app
/
Http
/
Controllers
/
Admin
/
Filename :
AdminController.php
back
Copy
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Owner; use App\Models\OwnerRoom; use App\Models\Admin; use App\Services\RBACService; use Auth; use Hash; use Session; use DB; use Socialite; use Image; Use Response; use Helpers; //use Illuminate\Foundation\Auth\AuthenticatesUsers; //use Mail; class AdminController extends Controller { public function index() { $admins = Admin::all(); return view('Admin.Admin.index',compact('admins')); } public function show_school_admins(){ $admins = Admin::whereRoleIs(['SCHOOL_ADMIN'])->get(); $role='SCHOOL_ADMIN'; return view('Admin.Admin.index',compact('admins', 'role')); } public function admin_list(Request $request) { $columns = array("name","email","admin_id"); $columns2 =array("admin.name","admin.email","admin.admin_id"); $totalData = Admin::count(); $limit = $request->input('length'); $start = $request->input('start'); $dir = $request->input('order.0.dir'); $query = Admin::select($columns2); if($request->has('role')){ $query->whereRoleIs([$request->role]); } if (!empty($request->input('search.value'))) { $search = $request->input('search.value'); $query->where(function ($query2) use ($columns2, $search) { foreach ($columns2 as $key => $value) { if ($key == 0) { $query2->where($value, 'LIKE', "%{$search}%"); } else { $query2->orWhere($value, 'LIKE', "%{$search}%"); } } return $query2; }); } $Admins = $query->get(); $totalFiltered = $Admins->count(); $Admins = $query->offset($start); $Admins = $query->limit($limit); if(isset($columns2[$request->input('order.0.column')])){ $order = $columns[$request->input('order.0.column')]; $Admins = $query->orderBy($order,$dir); } if(isset($request->sort_by) && $request->sort_by == 1) $Admins = $query->orderBy('admin.created_at', 'asc'); else $Admins = $query->orderBy('admin.created_at', 'desc'); $Admins = $query->get(); //$totalFiltered = $query->count(); $data = array(); if(!empty($Admins)) { foreach ($Admins as $key => $Admin) { $edit = route('admins.edit',$Admin->admin_id); if($request->has('role') && $request->role == 'ADMIN'){ $edit = route('admins.edit',$Admin->admin_id); }else if($request->has('role') && $request->role == 'SCHOOL_ADMIN'){ $edit = route('school-management.admin.edit',$Admin->admin_id); } $delete = route('admins.destroy', $Admin->admin_id); foreach ($columns as $key => $column) { if ($column == 'admin_id') { $nestedData[$column] = "<form action='{$delete}' method='POST' id='adminTable-".$Admin->$column."'> <input name='_method' type='hidden' value='DELETE'> ".csrf_field()." <a href='{$edit}' title='EDIT' class='mb-6 btn-floating waves-effect waves-light gradient-45deg-green-teal gradient-shadow'> <i class='material-icons'>edit</i></a> <button type='button' title='DELETE' class='mb-6 btn-floating waves-effect waves-light gradient-45deg-purple-deep-orange gradient-shadow' onclick='delete_admin(".$Admin->$column.");'> <i class='material-icons'>clear</i> </button> </form>"; } else if($column == 'created_at') { $nestedData[$column] = date('j M Y h:i a',strtotime($Admin->$column)); } else { $nestedData[$column] = $Admin->$column; } } $data[] = $nestedData; } } //echo count($data);exit; $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data ); // echo '<pre>';print_r($json_data);die; echo json_encode($json_data); } public function create() { // $rooms = Helpers::getRooms(); $Admins = Admin::get(); return view('Admin.Admin.create',compact('Admins')); } public function create_school_admin() { $role = 'SCHOOL_ADMIN'; return view('Admin.Admin.create',compact('role')); } public function store(Request $request) { $validate = $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:admin,email,NULL,admin_id,deleted_at,NULL', 'password' => 'required', 'confirm_password' => 'same:password', ]); $request['password'] = Hash::make($request['password']); $admin = Admin::create($request->all()); return redirect()->route('admins.index')->with('success','Record Successfully Inserted.'); } public function store_school_admin(Request $request) { $validate = $request->validate([ 'role' => 'required', 'name' => 'required', 'email' => 'required|email|unique:admin,email,NULL,admin_id,deleted_at,NULL', 'password' => 'required', 'confirm_password' => 'same:password', ]); $request['password'] = Hash::make($request['password']); $admin = Admin::create($request->all()); $rbacService = new RBACService(); $rbacService->assignRole($admin, 'SCHOOL_ADMIN'); return redirect()->route('school-management.admin')->with('success','Record Successfully Inserted.'); } public function edit($id) { $admins = Admin::find($id); $role = 'ADMIN'; return view('Admin.Admin.edit',compact('admins', 'role')); } public function edit_school_admin($id) { $admins = Admin::find($id); $role='SCHOOL_ADMIN'; return view('Admin.Admin.edit',compact('role','admins')); } public function update(Request $request,$id) { $validator = request()->validate([ 'name' => 'required', 'email' => 'required|email|unique:admin,email,'.$id.',admin_id,deleted_at,NULL', ]); $admins = Admin::find($id); if(!empty($request['reset_password'])) { $request['password'] = Hash::make($request['reset_password']); } $admins->update($request->all()); return redirect()->route('admins.index')->with('success','Record Updated Successfully.'); } public function update_school_admin(Request $request,$id) { $validator = request()->validate([ 'name' => 'required', 'email' => 'required|email|unique:admin,email,'.$id.',admin_id,deleted_at,NULL', ]); $admins = Admin::find($id); if(!empty($request['reset_password'])) { $request['password'] = Hash::make($request['reset_password']); } $admins->update($request->all()); return redirect()->route('school-management.admin')->with('success','Record Updated Successfully.'); } public function destroy($id) { $admin = Admin::find($id); $role = $admin->hasRole('SCHOOL_ADMIN') ? 'SCHOOL_ADMIN' : 'ADMIN'; $admin->delete(); if($role == 'SCHOOL_ADMIN') return redirect()->route('school-management.admin')->with('success','Record Deleted Successfully'); else return redirect()->route('admins.index')->with('success','Record Deleted Successfully'); } }