* fix password reset bug * self hosted mode middleware changes on pages * fix lint * wip: self hosted changes * wip: self hosted frontend changes * wip self hosted mode changes * typo correction * remove commented logic * fix env variable names * fix lint issues * fix minor updates * #445 Switched from single monolithic docker image to a docker-compose orchestrated network of services * Automatically configures shared secret * Working through some issues * Use local file storage * Moved the dockerfiles * Fixed some issues when building from clean * Corrected workflow * Hopefully schedules everything correctly now * Prep storage for worker process as well * .env files are required * Pinned dependency versions * Disable self hosted in the client as well * Removed double defaulting logic * Using regexs is more succinct * Added FRONT_URL environment variable * Merge 236e4-self-hosted-mode-changes * Improve inital user setup * Finalized the new docker-compose setup * Fix back-end formatting issues --------- Co-authored-by: Frank <csskfaves@gmail.com> Co-authored-by: Don Benjamin <don@webhammer.co.uk>
90 lines
2.3 KiB
PHP
90 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\Templates\FormTemplateRequest;
|
|
use App\Http\Resources\FormTemplateResource;
|
|
use App\Models\Template;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class TemplateController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$limit = (int) $request->get('limit', 0);
|
|
$onlyMy = (bool) $request->get('onlymy', false);
|
|
|
|
$query = Template::query();
|
|
|
|
if (Auth::check()) {
|
|
if ($onlyMy) {
|
|
$query->where('creator_id', Auth::id());
|
|
} else {
|
|
$query->where(function ($q) {
|
|
$q->where('publicly_listed', true)
|
|
->orWhere('creator_id', Auth::id());
|
|
});
|
|
}
|
|
} else {
|
|
$query->where('publicly_listed', true);
|
|
}
|
|
|
|
if ($limit > 0) {
|
|
$query->limit($limit);
|
|
}
|
|
|
|
$templates = $query->orderByDesc('created_at')->get();
|
|
|
|
return FormTemplateResource::collection($templates);
|
|
}
|
|
|
|
public function create(FormTemplateRequest $request)
|
|
{
|
|
$this->authorize('create', Template::class);
|
|
|
|
// Create template
|
|
$template = $request->getTemplate();
|
|
$template->save();
|
|
|
|
return $this->success([
|
|
'message' => 'Template was created.',
|
|
'template_id' => $template->id,
|
|
'data' => new FormTemplateResource($template),
|
|
]);
|
|
}
|
|
|
|
public function update(FormTemplateRequest $request, string $id)
|
|
{
|
|
$template = Template::findOrFail($id);
|
|
$this->authorize('update', $template);
|
|
|
|
$template->update($request->all());
|
|
|
|
return $this->success([
|
|
'message' => 'Template was updated.',
|
|
'template_id' => $template->id,
|
|
'data' => new FormTemplateResource($template),
|
|
]);
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$template = Template::findOrFail($id);
|
|
$this->authorize('delete', $template);
|
|
|
|
$template->delete();
|
|
|
|
return $this->success([
|
|
'message' => 'Template was deleted.',
|
|
]);
|
|
}
|
|
|
|
public function show(string $slug)
|
|
{
|
|
return new FormTemplateResource(
|
|
Template::whereSlug($slug)->firstOrFail()
|
|
);
|
|
}
|
|
}
|