ok
Direktori : /home2/selectio/www/limpiar.in.net/updates/app/Http/Controllers/ |
Current File : /home2/selectio/www/limpiar.in.net/updates/app/Http/Controllers/StaffController.php |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Staff; use App\Models\Role; use App\Models\User; use Hash; class StaffController extends Controller { public function __construct() { // Staff Permission Check $this->middleware(['permission:view_all_staffs'])->only('index'); $this->middleware(['permission:add_staff'])->only('create'); $this->middleware(['permission:edit_staff'])->only('edit'); $this->middleware(['permission:delete_staff'])->only('destroy'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $staffs = Staff::paginate(10); return view('backend.staff.staffs.index', compact('staffs')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $roles = Role::where('id','!=',1)->orderBy('id', 'desc')->get(); return view('backend.staff.staffs.create', compact('roles')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if(User::where('email', $request->email)->first() == null){ $user = new User; $user->name = $request->name; $user->email = $request->email; $user->phone = $request->mobile; $user->user_type = "staff"; $user->password = Hash::make($request->password); if($user->save()){ $staff = new Staff; $staff->user_id = $user->id; $staff->role_id = $request->role_id; $user->assignRole(Role::findOrFail($request->role_id)->name); if($staff->save()){ flash(translate('Staff has been inserted successfully'))->success(); return redirect()->route('staffs.index'); } } } flash(translate('Email already used'))->error(); return back(); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $staff = Staff::findOrFail(decrypt($id)); $roles = $roles = Role::where('id','!=',1)->orderBy('id', 'desc')->get(); return view('backend.staff.staffs.edit', compact('staff', 'roles')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $staff = Staff::findOrFail($id); $user = $staff->user; $user->name = $request->name; $user->email = $request->email; $user->phone = $request->mobile; if(strlen($request->password) > 0){ $user->password = Hash::make($request->password); } if($user->save()){ $staff->role_id = $request->role_id; if($staff->save()){ $user->syncRoles(Role::findOrFail($request->role_id)->name); flash(translate('Staff has been updated successfully'))->success(); return redirect()->route('staffs.index'); } } flash(translate('Something went wrong'))->error(); return back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { User::destroy(Staff::findOrFail($id)->user->id); if(Staff::destroy($id)){ flash(translate('Staff has been deleted successfully'))->success(); return redirect()->route('staffs.index'); } flash(translate('Something went wrong'))->error(); return back(); } }