File: /home/xedaptot/ai.naniguide.com/app/Http/Controllers/EmailVerificationServerController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class EmailVerificationServerController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
if (!$request->user()->customer->can('read', new \App\Model\EmailVerificationServer())) {
return $this->notAuthorized();
}
$request->merge(array("customer_id" => $request->user()->customer->id));
$servers = \App\Model\EmailVerificationServer::search($request);
return view('email_verification_servers.index', [
'servers' => $servers,
]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function listing(Request $request)
{
if (!$request->user()->customer->can('read', new \App\Model\EmailVerificationServer())) {
return $this->notAuthorized();
}
$request->merge(array("customer_id" => $request->user()->customer->id));
$servers = \App\Model\EmailVerificationServer::search($request)->paginate($request->per_page);
return view('email_verification_servers._list', [
'servers' => $servers,
]);
}
/**
* Select sending server type.
*
* @return \Illuminate\Http\Response
*/
public function select(Request $request)
{
return view('email_verification_servers.select');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$server = new \App\Model\EmailVerificationServer();
$server->status = \App\Model\EmailVerificationServer::STATUS_ACTIVE;
$server->uid = '0';
$server->fill($request->old());
// authorize
if (!$request->user()->customer->can('create', $server)) {
return $this->notAuthorized();
}
$server->fill($request->old());
$options = [];
if (!empty($request->old()['options'])) {
$options = $request->old()['options'];
}
return view('email_verification_servers.create', [
'server' => $server,
'options' => $options,
]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// Get current user
$current_user = $request->user();
$server = new \App\Model\EmailVerificationServer();
// authorize
if (!$request->user()->customer->can('create', $server)) {
return $this->notAuthorized();
}
// save posted data
if ($request->isMethod('post')) {
$server->fill($request->all());
$this->validate($request, $server->rules());
// Save current user info
$server->customer_id = $request->user()->customer->id;
$server->status = \App\Model\EmailVerificationServer::STATUS_ACTIVE;
$server->options = $request->options ?? []; // $casts['options' => 'array'] handles JSON encoding
if ($server->save()) {
$request->session()->flash('alert-success', trans('messages.email_verification_server.created'));
return redirect()->action('EmailVerificationServerController@index');
}
}
}
/**
* 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(Request $request, $id)
{
$server = \App\Model\EmailVerificationServer::findByUid($id);
// authorize
if (!$request->user()->customer->can('update', $server)) {
return $this->notAuthorized();
}
$server->fill($request->old());
$options = $server->options ?? [];
if (!empty($request->old()['options'])) {
$options = $request->old()['options'];
}
return view('email_verification_servers.edit', [
'server' => $server,
'options' => $options,
]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
*
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
// Get current user
$current_user = $request->user();
$server = \App\Model\EmailVerificationServer::findByUid($id);
// authorize
if (!$request->user()->customer->can('update', $server)) {
return $this->notAuthorized();
}
// save posted data
if ($request->isMethod('patch')) {
$server->fill($request->all());
$this->validate($request, $server->rules());
// Save current user info
$server->options = $request->options ?? []; // $casts['options' => 'array'] handles JSON encoding
if ($server->save()) {
$request->session()->flash('alert-success', trans('messages.email_verification_server.updated'));
return redirect()->action('EmailVerificationServerController@index');
}
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
*
* @return \Illuminate\Http\Response
*/
public function delete(Request $request)
{
$items = \App\Model\EmailVerificationServer::whereIn(
'uid',
is_array($request->uids) ? $request->uids : explode(',', $request->uids)
);
foreach ($items->get() as $item) {
// authorize
if ($request->user()->customer->can('delete', $item)) {
$item->delete();
}
}
// Redirect to my lists page
echo trans('messages.email_verification_servers.deleted');
}
/**
* Disable sending server.
*
* @param int $id
*
* @return \Illuminate\Http\Response
*/
public function disable(Request $request)
{
$items = \App\Model\EmailVerificationServer::whereIn(
'uid',
is_array($request->uids) ? $request->uids : explode(',', $request->uids)
);
foreach ($items->get() as $item) {
// authorize
if ($request->user()->customer->can('disable', $item)) {
$item->disable();
}
}
// Redirect to my lists page
echo trans('messages.email_verification_servers.disabled');
}
/**
* Disable sending server.
*
* @param int $id
*
* @return \Illuminate\Http\Response
*/
public function enable(Request $request)
{
$items = \App\Model\EmailVerificationServer::whereIn(
'uid',
is_array($request->uids) ? $request->uids : explode(',', $request->uids)
);
foreach ($items->get() as $item) {
// authorize
if ($request->user()->customer->can('enable', $item)) {
$item->enable();
}
}
// Redirect to my lists page
echo trans('messages.email_verification_servers.enabled');
}
/**
* Email verification server display options form.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
*/
public function options(Request $request, $uid = null)
{
if ($uid) {
$server = \App\Model\EmailVerificationServer::findByUid($uid);
} else {
$server = new \App\Model\EmailVerificationServer($request->all());
$options = $server->options ?? [];
}
return view('email_verification_servers._options', [
'server' => $server,
'options' => $options,
]);
}
}