MINI Sh3ll
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Solar\Repositories\Spcl_user\SpclInterface;
use Illuminate\Support\Facades\DB;
use App\User;
use App\Models\Role;
use Validator;
use Redirect;
use App\Http\Requests\SCPLUserRequest;
use App\Http\Requests\EditSCPLUserRequest;
use DataTables;
class SpclController extends Controller {
/**
* @var SpclInterface
*/
private $user;
public function __construct(SpclInterface $user) {
$this->user = $user;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index() {
$breadcrumb = breadCrumb('User', 'user.index', '');
$roles = $this->user->getUserRole();
return view('SCPL_users.index', compact('roles','breadcrumb'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create() {
$breadcrumb = breadCrumb('User', 'user.index', 'Create');
$role = $this->user->getRoles();
$modules = $this->user->getModules();
return view('SCPL_users.create', compact('role', 'modules','breadcrumb'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(SCPLUserRequest $request) {
DB::beginTransaction();
try {
$this->user->store($request);
DB::commit();
return redirect()->route('user.index')->with('success', 'User added successfully.');
} catch (\Exception $e) {
DB::rollBack();
logger($e->getMessage());
return redirect()->back()->with('error', $e->getMessage());
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id) {
$breadcrumb = breadCrumb('User', 'user.index', 'Show');
$user = $this->user->find(decrypt($id));
return view('SCPL_users.show', compact('user','breadcrumb'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) {
$breadcrumb = breadCrumb('User', 'user.index', 'Edit');
$role = $this->user->getRoles();
$modules = $this->user->getModules();
$user = $this->user->find(decrypt($id));
return view('SCPL_users.edit', compact('user', 'role', 'modules','breadcrumb'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(EditSCPLUserRequest $request, User $user) {
DB::beginTransaction();
try {
$this->user->update($user->id, $request);
DB::commit();
return redirect()->route('user.index')->with('success', 'User updated successfully.');
} catch (\Exception $e) {
DB::rollBack();
logger($e->getMessage());
return redirect()->back()->with('error', $e->getMessage());
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy(User $user) {
}
/**
* Display a listing of the SCPL user in DataTable.
*
* @return \Illuminate\Http\Response
*/
public function getSCPLUser(Request $request) {
$returnArray = array();
$role = null;
try {
$role = $request->input('role');
$user_name = $request->input('user_name');
$users = $this->user->getSCPLUser($role, $user_name);
foreach ($users as $user) {
$id = $user->id;
$name = $user->first_name . ' ' . $user->last_name;
$email = $user->email;
$mobile = $user->mobile;
$otp = (isset($user->otp) && !empty($user->otp)) ? $user->otp : '-';
$status = ($user->status == 1) ? '<span class="m-badge m-badge--primary m-badge--wide">Active</span>' : '<span class="m-badge m-badge--danger m-badge--wide">InActive</span>';
$role = $user->roles->role_name;
$created_at = date('Y-m-d', strtotime($user->created_at));
$action = '<div class="btn-group mr-2" role="group" aria-label="First group">
<a class="m-btn btn btn-secondary" href=' . route("user.edit", encrypt($user->id)) . '>
<i class="la la-edit"></i>
</a>
<a class="m-btn btn btn-secondary delete_user" data-id=' . $id . ' href="javascript:void(0);">
<i class="la la-trash"></i>
</a>
<a class="m-btn btn btn-secondary" href='. route("user.show", encrypt($user->id)) . '>
<i class="la la-eye"></i>
</a>
</div>';
$returnArray[] = array($name, $email, $mobile,$otp, $status, $role, $created_at, $action);
}
} catch (Exception $ex) {
$returnArray = array();
}
return json_encode(['data' => $returnArray]);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function delete(Request $request) {
DB::beginTransaction();
try {
$this->user->delete($request['id']);
DB::commit();
return json_encode([ 'status' => 1, 'success'=> 'User deleted successfully.' ]);
} catch (\Exception $exc) {
DB::rollBack();
logger($exc->getMessage());
return redirect()->back()->with('error', $exc->getMessage());
}
}
/*
* Get user default permission according role
*/
public function getPermission(Request $request){
try{
$defaultPermission = config('permissions_constants.permission.superadmin');
if((isset($request->role)) && (!empty($request->role)) && (!empty($request->role==2))) {
$defaultPermission = config('permissions_constants.permission.scpl_user');
}
return \Response::json($defaultPermission);
}catch(Exception $ex) {
}
}
}
OHA YOOOO