MINI Sh3ll
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Company;
use App\Models\Role;
use App\Solar\Repositories\SupportAndPortal\SupportAndPortalInterface;
use App\Solar\Repositories\Spcl_user\SpclInterface;
use DB;
use App\User;
use App\Http\Requests\AddSupportAndPortalAdminRequest;
use App\Http\Requests\EditSupportAndPortalAdminRequest;
class SupportAndPortalController extends Controller
{
/**
* @var SupportAndPortalInterface
*/
private $user;
private $scpluser;
public function __construct(SupportAndPortalInterface $user, SpclInterface $scpluser) {
$this->user = $user;
$this->scpluser = $scpluser;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$breadcrumb = breadCrumb('Portal Admin and Support', 'support.index', '');
$roles = $this->user->getUserRole();
return view('support_and_portal.index', compact('roles','breadcrumb'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$breadcrumb = breadCrumb('Portal Admin and Support', 'support.index', 'Create');
$companines = $this->user->getCompanies();
$company = $companines['company'];
$companyAttribute = $companines['companyAttribute'];
$role = Role::whereIn('role_name', ['Portal Admin','Portal Support'])->pluck('role_name', 'id')->prepend('Select Role', '');
$modules = $this->scpluser->getModules();
return view('support_and_portal.create', compact('company','companyAttribute','role','breadcrumb','modules'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(AddSupportAndPortalAdminRequest $request)
{
DB::beginTransaction();
try {
$this->user->store($request);
DB::commit();
return redirect()->route('support.index')->with('success', 'Record 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('Portal Admin and Support', 'support.index', 'Show');
$id = decrypt($id);
$user = $this->user->find($id);
return view('support_and_portal.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('Portal Admin and Support', 'support.index', 'Edit');
$id = decrypt($id);
$company = Company::pluck('company_name', 'id')->prepend('Select company', '');
$role = Role::whereIn('role_name', ['Portal Admin','Portal Support'])->pluck('role_name', 'id')->prepend('Select Role', '');
$user = $this->user->find($id);
$companyUser = $this->user->getCompany($id);
$modules = $this->scpluser->getModules();
return view('support_and_portal.edit', compact('company','role','user','companyUser', 'modules','breadcrumb'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(EditSupportAndPortalAdminRequest $request, $id)
{
DB::beginTransaction();
try {
$this->user->update($id, $request);
DB::commit();
return redirect()->route('support.index')->with('success', '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($id)
{
//
}
/**
* Display a listing of the SupportAndPortal admin in DataTable.
*
* @return \Illuminate\Http\Response
*/
public function getSupportAndPortal(Request $request) {
$returnArray = array();
try {
$role = $request->input('role')?$request->input('role'):'';
$user_name = $request->input('user_name')?$request->input('user_name'):'';
$users = $this->user->getSupportAndPortal($role,$user_name);
foreach ($users as $user) {
$id = $user->id;
$name = $user->first_name . ' ' . $user->last_name;
$email = $user->email;
$mobile = $user->mobile;
$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("support.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("support.show", encrypt($user->id)) . '>
<i class="la la-eye"></i>
</a>
</div>';
$returnArray[] = array($name, $email, $mobile, $status, $role, $created_at, $action);
}
} catch (Exception $ex) {
$returnArray = array();
}
return json_encode(['data' => $returnArray]);
}
/*
* Get user default permission according role
*/
public function getPermission(Request $request){
try{
$defaultPermission = config('permissions_constants.permission.portal_admin');
if((isset($request->role)) && (!empty($request->role)) && (!empty($request->role==5))) {
$defaultPermission = config('permissions_constants.permission.portal_support');
}
return \Response::json($defaultPermission);
}catch(Exception $ex) {
}
}
}
OHA YOOOO