IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/RoleController.php

<?php

namespace App\Http\Controllers\School;

use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
use Gate;
use Auth;
use DB;

class RoleController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index() {
        //
//        if (Gate::denies('add-role'))
//            return deny();
        $roles = \App\Role::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->orderBy('idRole', 'desc')->get();
        return view('roles.index', compact('roles'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create() {
        // dd('create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request) {
//        if (Gate::denies('add-role'))
//            return deny();
        $request->validate([
            'name' => 'required|unique:roles,name,NULL,idRole,idSchool,' . Auth::guard('school')->user()->idSchool,
            'label' => 'required|unique:roles,label,NULL,idRole,idSchool,' . Auth::guard('school')->user()->idSchool,
        ]);
        $role = new \App\Role();
        $role->fill($request->all());
        $role->idSchool = Auth::guard('school')->user()->idSchool;
        $role->save();
        flash($role->name . ' ' . 'has been saved successfully !!');
        return redirect('school/roles');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id) {
        //
        //   return view('roles.show');
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id) {
        //
//        if (Gate::denies('add-role'))
//            return deny();
        $roles = \App\Role::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->orderBy('idRole', 'desc')->get();
        $role = \App\Role::where('idRole', '=', $id)->first();
        return view('roles.index', compact('role', '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) {
        //
//        if (Gate::denies('add-role'))
//            return deny();
        $role = \App\Role::findOrfail($id);
        $request->validate([
            'name' => 'required',
        ]);
        $role->fill($request->all());
        $role->update();
        flash($role->name . ' ' . 'has been updated successfully !!');
        return redirect('school/roles');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id) {
        //
//        if (Gate::denies('add-role'))
//            return deny();
        $role = \App\Role::findOrfail($id);
        $role->delete();
        return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
    }

    public function showPermissions($role_id) {
//        if (Gate::denies('assign-permission'))
//            return deny();
        $role = \App\Role::where('idRole', '=', $role_id)->first();
        $school_user = Auth::guard('school')->user()->idSchoolUser;
        $school_id = Auth::guard('school')->user()->idSchool;
        if ($school_id == '14') {
            $permissions = \App\Permission::get();
            return view('roles.permissions_to_northmodule', compact('role', 'permissions'));
        } else {
            $modules = DB::table('screenmapping')
                    ->join('school_users', 'screenmapping.idSchoolUser', '=', 'school_users.idSchoolUser')
                    ->join('screen', 'screenmapping.idScreen', '=', 'screen.idScreen')
                    ->join('module', 'screen.idModule', '=', 'module.idModule')
                    ->where('screenmapping.idSchoolUser', '=', $school_user)
                    ->where('module.isActive', '=', 'Y')
                    ->orderBy('module.displayOrder')
                    ->select('moduleName', 'screen.idModule', 'module.displayOrder', 'module.iconName', 'module.screenLink')
                    ->groupBy('moduleName')
                    ->get();
            return view('roles.permissions_to_role', compact('role', 'modules'));
        }
    }

    public function savePermissions(Request $request, $role_id) {
        //dd($request->all());
//       if (Gate::denies('assign-permission'))
//            return deny();
        $school_id = Auth::guard('school')->user()->idSchool;
        if ($school_id != '14') {
            $screenmapped = \App\ScreenMapping::where('idRole', '=', $role_id)->get()->pluck('idScreen')->toArray();

            $newscr = $request->screens;
            $detach = array_diff($screenmapped, $newscr);
            \App\ScreenMapping::whereIn('idScreen', $detach)
                    ->where('idRole', '=', $role_id)
                    ->delete();

            foreach ($request->screens as $key => $value) {
                $screencheck = \App\ScreenMapping::where('idRole', '=', $role_id)
                                ->where('idScreen', '=', $value)->first();
                if (!$screencheck) {
                    $scrmap = new \App\ScreenMapping();
                    $scrmap->fill($request->all());
                    $scrmap->idScreen = $value;
                    $scrmap->idRole = $role_id;
                    $scrmap->save();
                }
            }
            flash('Screen Access has been assigned Successfully');
            return redirect('school/roles');
        } else {
            $role = \App\Role::where('idRole', '=', $role_id)->first();
            $role->permissions()->sync($request->input('permission_id', []));
            return redirect('school/roles');
        }
    }

}

Copyright © 2021 - 2025 IMMREX7