Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Http\Request;
- use Spatie\Permission\Models\Role;
- use Spatie\Permission\Models\Permission;
- use App\User;
- use App\Subsystem;
- use App\Truck_Fleet;
- use App\Truck_Model;
- use App\Truck;
- use App\Truck_Counter;
- use Illuminate\Support\Facades\Auth;
- class AdminController extends Controller
- {
- /**
- * Show the admin dashboard.
- *
- */
- public function index(){
- return view('admin.home');
- }
- public function truck_summary(){
- return view('admin.truck_summary');
- }
- public function truck_201(){
- $fleets = Truck_Fleet::all();
- $truck_models = Truck_Model::all();
- $trucks = Truck::all();
- return view('admin.truck_201', [
- 'trucks'=> $trucks,
- 'fleets'=> $fleets,
- 'truck_models'=> $truck_models
- ]);
- }
- /*
- * Adds A new User to be verified
- * @param \Illuminate\Http\Request $request
- * @param \Illuminate\Http\Response
- * type: API
- */
- public function addTruck201(Request $request){
- $this->validate($request, [
- 'body_number' => 'required',
- 'plate_number' => 'required'
- ]);
- $out = array(); // response object
- // create truck counter
- $count = new Truck_Counter;
- if ($count->save()){
- // create truck object
- $truck = new Truck;
- $truck->encodeID($count->id);
- $truck->body_no = $request->input('body_number');
- $truck->plate_no = $request->input('plate_number');
- if ($truck->save()){
- $out['error'] = false;
- $out['message'] = "Truck Created successfully";
- $out['truck_id'] = $truck->vehicle_id;
- return response()
- ->json($out, 202);
- }
- }
- $out['error'] = true;
- $out['message'] = "An error has occured";
- return response()
- ->json($out, 300);
- }
- public function truck_personnel(){
- return view('admin.truck_personnel');
- }
- public function truck_documents(){
- return view('admin.truck_documents');
- }
- public function truck_operations(){
- return view('admin.truck_operations');
- }
- public function users(){
- $roles = Role::all('id', 'name');
- $users = User::all();
- return view('admin.users_page', [
- 'roles' => $roles,
- 'users' => $users
- ]);
- }
- /*
- * Adds A new User to be verified
- * @param \Illuminate\Http\Request $request
- * @param \Illuminate\Http\Response
- */
- public function addUser(Request $request){
- $this->validate($request, [
- 'fname' => 'required',
- 'lname' => 'required',
- 'email' => 'required',
- 'role' => 'required'
- ]);
- // check if email already exists
- $n = User::where('email', $request->input('email'))->count();
- if ($n > 0)
- return redirect('/users')->with('error', 'Email already exists');
- $user = new User;
- $user->fname = $request->input('fname');
- $user->lname = $request->input('lname');
- $user->email = $request->input('email');
- //$user->password = bcrypt(str_random(20));
- $user->password = bcrypt("mmdapo");
- $user->user_type = 1;
- $user->added_by = Auth::user()->id;
- if ($user->save()){
- // assign role to user
- $role = Role::find($request->input('role'));
- $user->assignRole($role->name);
- return redirect('/users')->with('success', 'User added successfully');
- }
- else{
- return redirect('/users')->with('An unexpected error has occured');
- }
- }
- public function roles(){
- // retrive Modules
- $available = array();
- $modules = DB::table('modules')
- ->select('name', 'mod_id')
- ->get();
- foreach ($modules as $module) {
- $id = $module->mod_id;
- $permissions = DB::table('module_has_permission')
- ->join('permissions', 'permissions.id', '=', 'module_has_permission.permission_id')
- ->select('permission_id', 'name')
- ->where('mod_id', "$id")
- ->get();
- array_push($available, [
- 'name' => $module->name,
- 'permissions' => $permissions
- ]);
- }
- $roles = Role::all();
- return view ('admin.roles_page', ['available' => $available, 'roles' => $roles]);
- }
- /*
- * Adds A new Role and permissions associated with it
- * @param \Illuminate\Http\Request $request
- * @param \Illuminate\Http\Response
- */
- public function addRole(Request $request){
- $this->validate($request, [
- 'role_name' => 'required',
- 'permissions' => 'required|array|min:1'
- ]);
- // check if role already exists
- $role_name = $request->input('role_name');
- $n = Role::where('name', $role_name)->count();
- if ($n > 0)
- return redirect('/roles')->with('error', 'Role Already exists');
- // add role
- $role = Role::create(['name' => $role_name]);
- if (!$role)
- return redirect('/roles')->with('error', 'Role Creation failed');
- $Permissions = Permission::whereIn('id', $request->input('permissions'))->get();
- $role->syncPermissions($Permissions);
- // assign roles
- return redirect('/roles')->with('success', 'Role Creation successful');
- }
- /*
- * Edits an existing Role and permissions associated with it
- * @param \Illuminate\Http\Request $request
- * @param \Illuminate\Http\Response
- */
- public function editRole(Request $request){
- $this->validate($request, [
- 'role_id' => 'required',
- 'role_name' => 'required',
- 'permissions' => 'required|array|min:1'
- ]);
- $role_id = $request->input('role_id');
- // check if role already exists
- $role_name = $request->input('role_name');
- $n = Role::where('name', $role_name)
- ->where('id', '!=', $role_id)
- ->count();
- if ($n > 0){
- return redirect('/roles')->with('error', 'Role name already taken');
- }
- $role = Role::find($role_id);
- $role->name = $request->input('role_name');
- if ($role->save()){
- // get list of current roles before adding
- $rp = $role->permissions;
- // add new roles
- $new = Permission::whereIn('id', $request->input('permissions'))->get();
- $role->syncPermissions($new);
- return redirect('/roles')->with('success', 'Role Updated successully');
- }
- return redirect('/roles')->with('error', 'An error has occured');
- }
- /*
- * Gets all Permissions associated with a role
- * type: API
- * @param role_id
- * @param \Illuminate\Http\Response
- */
- public function getRolePermissions($role_id){
- $role = Role::find($role_id);
- if (!$role)
- return response()->json([
- 'error' => true,
- 'message' => 'Role not found'
- ]);
- return response()->json([
- 'error' => false,
- 'message' => 'Role found',
- 'id' => $role->id,
- 'name' => $role->name,
- 'permissions' => $role->permissions
- ]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement